MVC(JSP+JavaBean+Servlet)入门实例:用户登陆验证
1 <html> 2 <body> 3 It is first JSP page! 4 </body> 5 </html>
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 };
3、Model.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 /** 2 * 2013-11-16 3 * Model.java 4 * author:** 5 */ 6 package mvctest; 7 8 public class Model { 9 10 private String name=null; 11 private String pas=null; 12 13 public void setName(String name) { 14 this.name=name; 15 } 16 17 public String getName() { 18 return name; 19 } 20 21 public void setPas(String pas) { 22 this.pas=pas; 23 } 24 25 public String getPas() { 26 return pas; 27 } 28 29 public String login() { 30 if ((name.trim().equals("admin"))&&(pas.trim().equals("1234"))) { 31 return "login successful"; 32 } 33 else { 34 return "login failed"; 35 } 36 } 37 }
4、编译Model.java、LoginServlet.java
注意1:编译报软件包javax.servlet不存在,http://liuxlyard.iteye.com/blog/582381
原因是:java编译器没有找到软件包javax.servlet,由于servlet和JSP不是Java平台Java SE(标准版)的一部分,而是Java EE(企业版)的一部分,因此,必须告知编译器servlet的位置。
注意2:Model.java和LoginServlet.java都在包mvctest中,且LoginServlet.java依赖Model,因此需要先编译Model.java,然后再编译LoginServlet.java
D:\Program Files (x86)\apache-tomcat-7.0.42-windows-x64\apache-tomcat-7.0.42\web
apps\webDemo\WEB-INF\src\mvctest>javac Model.java
D:\Program Files (x86)\apache-tomcat-7.0.42-windows-x64\apache-tomcat-7.0.42\web
apps\webDemo\WEB-INF\src>javac mvctest\LoginServlet.java //此处必须要这样才行
5、拷贝全路径class文件到D:\Program Files (x86)\apache-tomcat-7.0.42-windows-x64\apache-tomcat-7.0.42\webapps\webDemo\WEB-INF\classes
6、returnMessage.jsp
//D:\Program Files (x86)\apache-tomcat-7.0.42-windows-x64\apache-tomcat-7.0.42\webapps\webDemo\mvc\returnMessage.jsp
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" import="java.sql.*"%> 2 <html> 3 <head> 4 <title>MVC(JSP+JavaBean+Servlet)入门实例--中国网页设计</title> 5 </head> 6 7 <body> 8 <% 9 String message=new String ( request.getParameter("message").getBytes("ISO8859-1"),"GBK" ); %> 10 <%=message %> 11 </body> 12 </html>
7、配置Servlet
(1)编辑好的Servlet源文件不能响应用户请求,还必须将其编译成class文件,并将编译后的文件及包放到WEB-INF/classes路径下
(2)为了能让Servlet响应用户请求,还必须将Servlet配置在Web应用中,即修改web.xml
1 <!-- 配置Servlet的名字 --> 2 <servlet> 3 <servlet-name>Login</servlet-name> 4 <servlet-class>mvctest.LoginServlet</servlet-class> 5 </servlet> 6 <!-- 配置Servlet的URL --> 7 <servlet-mapping> 8 <servlet-name>Login</servlet-name> 9 <url-pattern>/login.do</url-pattern> 10 </servlet-mapping>
注意第4行,需要加包名
四、验证
主要参考:http://blog.csdn.net/lyyybz/article/details/8782138#t1 //数据库的操作还未实践