现在通过一个简单的例子来更加深入的了解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>