首先看看我们的目录结构:
1.这是在MyEclipse中的截图,首先我们看看login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Login page</title>
</head>
<body>
<form action="login1">
username:
<input type="text" name="username">
<br>
password:
<input type="password" name="pwd">
<br>
<input type="submit">
</form>
</body>
</html>
语法就不介绍了,但是值得注意的是<form action="login1">,这里login1为action的名字,我们在web.xml中会进行相应的配置
2.下面我们看看CheckAccount.java
package com.iverson.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.*;
public class CheckAccount extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession();
AcountBean account = new AcountBean();
String username = request.getParameter("username");
String pwd = request.getParameter("pwd");
account.setUsername(username);
account.setPassword(pwd);
if ((username != null) && (username.trim().equals("jsp"))) {
if ((pwd != null) && (pwd.trim().equals("1"))) {
System.out.println("session");
session.setAttribute("account", account);
String logon_suc = "session.jsp";
response.sendRedirect(logon_suc);
return;
}
}
String logon_fail = "fail.jsp";
response.sendRedirect(logon_fail);
return;
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
doPost方法用来相应post请求,doGet方法用来相应get请求,我们在login.jsp中未定义类型,即为默认的method=get请求
3.下面是AccountBean.java
package com.iverson.servlet;
public class AcountBean {
private String username = "";
private String password = "";
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
这是面向对象的思想的体现,用来将user封装起来。
4.下面是web.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>CheckAccount</servlet-name>
<servlet-class>com.iverson.servlet.CheckAccount</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CheckAccount</servlet-name>
<url-pattern>/login1</url-pattern>
</servlet-mapping>
</web-app>
其中,servle标签中,servlet-name为我们的servlet的类名;servlet-class为其路径,注意是在我们的项目名称下的路径,而不是绝对路径;在servlet-mapping标签中,servlet-name为我们的servlet的类名,与servlet标签中的servlet-name一样;url-pattern为login.jsp中定义的action的名字。
5.运行
在MyEclipse中自带浏览器中输入http://localhost:8080/Example/login.jsp,然后输入用户名和密码并提交,此时促发login1 action,根据web.xml的配置找到servlet服务器,此时servlet检查用户名和密码,如果是jsp和1的话则会跳转到session.jsp页面,否则跳转到fail.jsp页面。