
MVC模式是什么
MVC(模型Model-视图View-控制器Controller)是一种设计模式,M(Model)在Java Web里说的是JavaBean,在JavaBean中除了其属性和字段,还可以有行为及其事件,JavaBean可以理解为普通Java对象。 Java普通对象,就是符合Java规范的所有对象,这和实体类完全是两回事。 业务逻辑和数据访问应该放在Model层,也就是V负责展示数据,Controler除了转发不做业务逻辑。 真正的逻辑事务,数据访问,甚至算法都放到Model去。 Controller是控制器的意思,所谓控制器,就是将用户请求转发给模型层,经过处理后把结果返回到界面层展现的一个中间层,那么Controller到底管什么工作呢?先不说.先来看下在Java Web中这三个层一般的定义,一般在Java Web里,JSP充当V,Servlet充当C,JavaBean充当M,这里的Servlet管什么工作呢?接受输入,转到Model层去处理,处理结果保存后转发到JSP,然后展现数据。 所以它的功能就是控制器的基本功能,它就管转发,在V和M之间转来转去。 MVC没有把业务的逻辑访问看成两个层,这是采用三层架构或MVC搭建程序最主要的区别。 当然了。 在三层中也提到了Model,但是三层架构中Model的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是已实体类构成的,而MVC里,则是由业务逻辑与访问数据组成的。
拦截器是什么
拦截器(Interceptor)是一种在软件设计中常用的设计模式,主要用于在程序执行过程中拦截或截取特定的操作或事件。 它可以在操作发生之前、之后或替代操作本身进行自定义的处理。 拦截器在Java等编程语言中广泛应用,特别是在Web开发中,如Spring MVC和Struts2等框架均支持拦截器的实现。 在Web应用中,拦截器可以拦截用户的HTTP请求,在请求到达目标方法之前或之后执行特定的操作,如权限检查、日志记录、参数校验等。 这使得开发者能够在不修改原有业务逻辑代码的情况下,增加额外的功能,提高了代码的复用性和可维护性。 拦截器通常基于Java的反射机制或AOP(面向切面编程)技术实现,能够灵活地插入到程序的执行流程中。 在Spring MVC中,拦截器通过实现HandlerInterceptor接口并注册到Spring容器中来实现;而在Struts2中,拦截器则通过实现Interceptor接口或继承AbstractInterceptor类来定义,并在配置文件中进行注册和配置。 总之,拦截器是一种强大的软件设计模式,它允许开发者在不影响原有业务逻辑的前提下,增加额外的功能和处理逻辑,提高了软件的可扩展性和可维护性。
什么是jsp,什么是Servlet?jsp和Servlet有什么区别?
jsp与Servlet是Web开发中常用的两种技术。 jsp实际上是Servlet的一种特殊形式,每个jsp页面会生成一个Servlet实例。 Servlet是由Java提供的用于开发Web服务器应用程序的组件,运行在服务器端,由Servlet容器管理,用于生成动态内容。 Servlet通过实现Servlet接口,自定义类来实现。 它们的主要区别在于:jsp页面中的Java代码侧重于页面显示,而Servlet代码侧重于逻辑控制。 在MVC设计模式中,jsp属于视图层,Servlet属于控制层。 jsp运行机制如下图所示:JVM仅识别Java类,并不能直接识别jsp代码。 当web容器收到以为扩展名的URL请求时,会交给Tomcat中的jsp引擎处理。 首次访问jsp页面时,引擎将其解释为一个Servlet源程序,编译后生成文件。 接着,web容器的Servlet引擎加载并执行此Servlet程序,实现页面交互。