对于JSP和servlet只是描述概念和定义的话未免显得太单薄,缺少具体得内容,找到了一个教学项目进行了介绍,
名词介绍;
JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。
在服务器中的后缀是.jsp
可以看到在jsp中写了一些java代码来辅助处理渲染页面,而这些java在经过服务器处理之后最终在浏览器上只会以html显示。
在经过服务器处理以后返回得页面就成了一个html
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
我们在服务器中写一个servlet,代码中嵌入html
当浏览器访问后输出的内容又变成了一个html
如何访问此servlet呢?
有两种方式定义访问路径
1)在web.xml中
第二种是注解配置
我们把web.xml中的servlet给注释掉,在代码中加入注解:
在浏览器中进行访问一样能够请求到次页面。
这也是java中请求路径的设置方式1.在代码中加入注解,负责处理这些请求的代码归在同一个包下这些包的常用名字有controller,action,web等。2就是在配置文件中配置出来,配置文件根据使用的代码框架不同写法也不同。比较常用的负责处理web层的框架有stricts2,springmvc等。
但是不管在代码中嵌入网页或者在网页中嵌入代码的写法都过于混乱,会让后期的项目难以维护。比较常用的做法是使用MVC模式来使用jsp和servlet。当请求到达服务器由servlet来调用代码的业务层来处理此次请求。把处理的结果发送给JSP,由JSP来进行展示。
MVC:经典MVC模式中,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。其中,View的定义比较清晰,就是用户界面。
比如一个简化的登陆:
当请求送浏览器或者其他客户端发出,到达处理登陆的LoginServlet(controller),LoginServlet调用LoginServletServive(model)中处理账号密码的代码,和数据库中的账号密码匹配。然后将返回结果给LoginServlet。LoginServlet由返回结果判断该向哪个jsp(view)进行跳转。