一、使用多个ActionServlet分别接收不同请求
<form action="LoginServlet" method="post">
<input type="text" name="name"/><br/>
<input type="text" name="password"/><br/>
<input type="submit"/>
</form>
- LoginServlet.java做为对应处理类
package com.servlet.action;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.servlet.model.User;
public class LoginServlet extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 20161025001L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//设置编码格式
String username = req.getParameter("name");
resp.setContentType("text/html;charset=utf-8");
/*//返回html页面
resp.getWriter().println("<html>");
resp.getWriter().println("<head>");
resp.getWriter().println("<title>登录信息</title>");
resp.getWriter().println("</head>");
resp.getWriter().println("<body>");
resp.getWriter().println("欢迎【" + username + "】用户登录成功!!!");
resp.getWriter().println("</body>");
resp.getWriter().println("</html>"); */
List<User> users = new ArrayList<User>();
User user1 = new User();
user1.setName("XXXX");
user1.setNo("1");
user1.setScore(80l);
users.add(user1);
User user2 = new User();
user2.setName("YYYY");
user2.setNo("2");
user2.setScore(89l);
users.add(user2);
req.setAttribute("name",username);
req.setAttribute("users",users);
req.getRequestDispatcher("list.jsp").forward(req, resp);
//resp.sendRedirect("list.jsp");
}
}
- 创建list.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>数据列表</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<p>欢迎<%=request.getAttribute("name")%>用户登录成功</p>
<table>
<tr><td>学号</td><td>姓名</td><td>分数</td><td>操作</td></tr>
<c:forEach items="${users}" var="list" varStatus="s">
<tr><td>${list.no}</td><td>${list.name}</td><td>${list.score}</td><td><a href="DeleteServlet?name=${list.name}" title="shanchu">删除</a></td></tr>
</c:forEach>
</table>
</body>
</html>
- 创建删除的处理类DeleteServlet.java
package com.servlet.action;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DeleteServlet extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 20161025002L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String username = req.getParameter("name");
req.setAttribute("name",username);
req.getRequestDispatcher("/LoginServlet").forward(req, resp);
}
}
- User.java
package com.servlet.model;
public class User {
private String name;
private String no;
private Long score;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public Long getScore() {
return score;
}
public void setScore(Long score) {
this.score = score;
}
}
- 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>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.servlet.action.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>DeleteServlet</servlet-name>
<servlet-class>com.servlet.action.DeleteServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DeleteServlet</servlet-name>
<url-pattern>/DeleteServlet</url-pattern>
</servlet-mapping>
</web-app>
二、只设置一个Servlet(根据请求url使用if..else区分处理)
package com.servlet.action;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ActionServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String path = null;
String method = req.getParameter("method");
String username = req.getParameter("name1");
req.setAttribute("name",username);
if("login".equals(method)){
path = "index.jsp";
}
if("success".equals(method)){
path = "success.jsp";
}
if("start".equals(method)){
path = "list.jsp";
}
req.getRequestDispatcher(path).forward(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req,resp);
}
}