一、JSP、JavaBean、Servlet的区别
1、JSP:JSP通过在标准的HTML页面中嵌入Java代码,其静态的部分无效Java程序控制,只有那些需要从数据库读取或需要动态生成的页面内容,才使用Java脚本控制;JSP必须在JSP服务器内运行,JSP文件必须生成Servlet才能执行。例如一个静态的页面first.jsp,访问该页面,会在$tomcat_home\work\Catalina\localhost\webDemo\org\apache\jsp生成first_jsp.java、first_jsp.class
 
例子:
// first.jsp,如果为first.html,不会生成对应的Servlet
1 <html>
2 <body>
3 It is first JSP page!
4 </body>
5 </html>
 
2、JavaBean如果多个jsp页面需要重复使用某段代码,我们可以把这段代码定义成Java类的方法,让后让多个jsp页面调用该方法即可,这样可以达到较好的代码复用。这就是JavaBean
 
3、Servlet:JSP的本质就是Servlet,开发者把编写好的JSP页面部署在Web容器中后,Web容器会将JSP编译成对应的Servlet;但直接使用Servlet的坏处是:(1)Servlet的开发效率非常低,特别是当使用Servlet生成表现层页面时,页面中所有的HTML标签,都需要采用Servlet输出流来输出,因此及其繁琐
       (2)而且Servlet是标准的Java类,必须由程序员开发修改,美工人员难以参与Servlet页面的开发
这一系列问题,阻碍了Servlet作为表现层的使用
 
自从MVC规范出现后,Servlet的责任开始明确下来,仅仅作为控制器使用,不再需要生成标签页签,也不再作为视图层使用
 
Servlet通常称为服务端的小程序,是运行在服务端的小程序,用于处理及响应客户端的请求;是个特殊的Java类,必须继承HttpServlet,提供不同的方法用于响应客户端的请求
(1)doGet (2)doPost (3)doPut (4)doDelete;大部分时候Servlet对于所有的请求都是一样的,这时只需要重写service()方法即可响应客户端的所有请求
MVC(JSP+JavaBean+Servlet)入门实例:用户登陆验证
 
二、MVC(JSP+JavaBean+Servlet) 实例功能
   客户在登陆页面Login.html输入用户名和密码,提交表单,由Servlet(LoginServlet.java)(Servlet作为前端控制前,负责接收客户端发送的请求,Servlet只包含控制逻辑和简单的前端处理)调用JavaBean(Model.java)验证用户名和密码(JavaBean完成实际的逻辑处理),最后调用视图returnMessage.jsp显示(相应的JSP页面 处理显示逻辑),如果成功显示成功信息,不成功显示失败信息。
MVC(JSP+JavaBean+Servlet)入门实例:用户登陆验证
三、MVC(JSP+JavaBean+Servlet) 实例开发步骤
 

 1、login.html

//D:\Program Files (x86)\apache-tomcat-7.0.42-windows-x64\apache-tomcat-7.0.42\webapps\webDemo\mvc\login.html

 1 <html>
 2 <form action="/webDemo/login.do" method="post">
 3 <div>
 4 Name<input type="text" name="name"/><br/>
 5 Password<input type="text" name="pas"/><br/>
 6 <input type="submit" value="Login"/>
 7 <input type="hidden" value="login" name="typeId"/> 
 8 </div>
 9 </form>
10 </html>
注意:第2行,必须用全路径 /webDemo/login.do

 2、LoginServlet.java

//D:\Program Files (x86)\apache-tomcat-7.0.42-windows-x64\apache-tomcat-7.0.42\webapps\webDemo\WEB-INF\src\mvctest\LoginServlet.java

 1 // 建立MVC中的C(control),完成JSP+Servlet+JavaBean的开发模式
 2 
 3 package mvctest;
 4 
 5 import java.io.* ;
 6 import java.util.* ;
 7 import javax.servlet.* ;
 8 import javax.servlet.http.* ;
 9 //import org.lxh.factory.* ;
10 //import org.lxh.vo.* ;
11 
12 
13 public class LoginServlet extends HttpServlet {
14     public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
15         this.doPost(request,response) ;
16     }
17     public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
18         response.setContentType("text/html;charset=GB2312");//设置响应的MIME类型。
19         java.io.PrintWriter out = response.getWriter();
20            
21         String type=request.getParameter("typeId");
22         if (type.trim().equals("login")) {
23             String name=request.getParameter("name");//获取视图里的name
24             String pas=request.getParameter("pas");//获取视图里的password
25             
26             Model newModel=new Model();//调用 模型
27             newModel.setName(name);
28             newModel.setPas(pas);    
29             String message = newModel.login();
30             
31             String url="/webDemo/mvc/returnMessage.jsp?message="+message;  //如下是把结果返回给视图
32             url=new String(url.getBytes("GBK"),"ISO8859_1"); 
33             response.sendRedirect(url); 
34         }
35     }
36 };
View Code

相关文章: