现在通过一个简单的例子来更加深入的了解Servlet的基本原理和机制,用户登录网址(1.0版本)的基本框架图如下:
它的功能包括:
1、进行简单的用户验证
2、如何使用Servlet开发动态网页
3、如何从一个页面跳转到另外一个页面
登录界面代码:
/** * @(#)HelloGen.java * *登录界面 * @author * @version 1.00 2017/2/23 */ package com.chongqing; import javax.servlet.http.*; import java.io.*; public class Login extends HttpServlet { //处理get请求 public void doGet(HttpServletRequest req,HttpServletResponse res){ //业务逻辑 try { //中文乱码 res.setContentType("text/html;charset=gbk"); PrintWriter pw = res.getWriter(); //返回登录界面 pw.println("<html>"); pw.println("<body>"); pw.println("<h1>登录界面<h1>"); pw.println("<form action= logincl method=post>"); pw.println("用户名:<input type=text name=username><br>"); pw.println("密码:<input type=password name=passwd><br>"); pw.println("<input type=submit value=login><br>"); pw.println("</form>"); pw.println("</body>"); pw.println("</html>"); } catch (Exception ex) { ex.printStackTrace(); } } public void doPost(HttpServletRequest req,HttpServletResponse res){ this.doGet(req,res); } }
验证登录代码:
/** * @(#)HelloGen.java * *验证页面 * @author * @version 1.00 2017/2/23 */ package com.chongqing; import javax.servlet.http.*; import java.io.*; public class LoginCl extends HttpServlet { //处理get请求 public void doGet(HttpServletRequest req,HttpServletResponse res){ //业务逻辑 try { //接收用户名和密码 String u = req.getParameter("username"); String p = req.getParameter("passwd"); //验证 if(u.equals("zero")&&p.equals("123")){ //合法,跳转到欢迎界面 res.sendRedirect("wel");//写你要到的Servlet的URL }else{ //不合法 res.sendRedirect("login");//写你要到的Servlet的URL } } catch (Exception ex) { ex.printStackTrace(); } } public void doPost(HttpServletRequest req,HttpServletResponse res){ this.doGet(req,res); } }
登录成功界面代码:
/** * @(#)HelloGen.java * *欢迎界面 * @author * @version 1.00 2017/2/23 */ package com.chongqing; import javax.servlet.http.*; import java.io.*; public class wel extends HttpServlet { //处理get请求 public void doGet(HttpServletRequest req,HttpServletResponse res){ //业务逻辑 try { PrintWriter pw = res.getWriter(); pw.println("Welcom!"); } catch (Exception ex) { ex.printStackTrace(); } } public void doPost(HttpServletRequest req,HttpServletResponse res){ this.doGet(req,res); } }
最后是web.xml的代码:
<?xml version="1.0" encoding="ISO-8859-1"?> <web-app > <description> Servlet and JSP Examples. </description> <display-name>Servlet and JSP Examples</display-name> <servlet-name>hello</servlet-name> <!--指明servlet的路径,(包名+类名)--> <servlet-class>com.chongqing.Hello</servlet-class> </servlet> <servlet> <!--给你的servlrt取名,任意的--> <servlet-name>login</servlet-name> <!--指明servlet的路径,(包名+类名)--> <servlet-class>com.chongqing.Login</servlet-class> </servlet> <servlet-mapping> <!--给你的servlrt取名,任意的--> <servlet-name>login</servlet-name> <!--这是在浏览器中输入的访问该servlet的url--> <url-pattern>/login</url-pattern> </servlet-mapping> <servlet> <!--给你的servlrt取名,任意的--> <servlet-name>logincl</servlet-name> <!--指明servlet的路径,(包名+类名)--> <servlet-class>com.chongqing.LoginCl</servlet-class> </servlet> <servlet-mapping> <!--给你的servlrt取名,任意的--> <servlet-name>logincl</servlet-name> <!--这是在浏览器中输入的访问该servlet的url--> <url-pattern>/logincl</url-pattern> </servlet-mapping> <servlet> <!--给你的servlrt取名,任意的--> <servlet-name>wel</servlet-name> <!--指明servlet的路径,(包名+类名)--> <servlet-class>com.chongqing.wel</servlet-class> </servlet> <servlet-mapping> <!--给你的servlrt取名,任意的--> <servlet-name>wel</servlet-name> <!--这是在浏览器中输入的访问该servlet的url--> <url-pattern>/wel</url-pattern> </servlet-mapping> <!--JSPC servlet mappings end --> </web-app>