package com.bjpowernode.servlet;
import java.io.IOException;
import java.io.PrintWriter;
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.ankangqiao.servlet.UserManager;
@SuppressWarnings("serial")
public class TestServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
String requestUIR = request.getRequestURI();
System.out.println("requestUIR:" + requestUIR);
String path = requestUIR.substring(requestUIR.indexOf("/", 1),
requestUIR.indexOf("."));
System.out.println("path:" + path);
String forward = "";
String username = request.getParameter("username");
Action action = null;
if (username != null) {
username = new String(username.getBytes("ISO-8859-1"), "UTF-8");
if (path.equals("/Servlet/addUser")) {
action = new AddUserAction();
} else if (path.equals("/Servlet/deleteUser")) {
action = new DeleteUserAction();
} else if (path.equals("/Servlet/modifyUser")) {
action = new ModifyUserAction();
} else if (path.equals("/Servlet/queryUser")) {
action = new QueryUserAction();
} else {
out.print("访问失败!");
}
try {
forward = action.execute(request, response);
request.getRequestDispatcher(forward)
.forward(request, response);
} catch (Exception e) {
e.printStackTrace();
out.print("增删改查失败!");
}
}
}
}
/**
* <action-config>
* <action path="/servlet/delUser" type="com.bjpowernode.servlet.DelUserAction">
* <forward name="success">/del_success.jsp</forward>
* <forward name="error">/del_error.jsp</forward>
* </action
*
* <action path="/servlet/addUser" type="com.bjpowernode.servlet.AddUserAction">
* <forward name="success">/add_success.jsp</forward>
* <forward name="error">/add_error.jsp</forward>
* </action
*
* <action path="/servlet/modifyUser" type="com.bjpowernode.servlet.ModifyUserAction">
* <forward name="success">/modify_success.jsp</forward>
* <forward name="error">/modify_error.jsp</forward>
* </action
*
* <action path="/servlet/queryUser" type="com.bjpowernode.servlet.QueryUserAction">
* <forward name="success">/query_success.jsp</forward>
* <forward name="error">/query_error.jsp</forward>
* </action
*
*
* </action-config>
*
* ActionMapping {
* private String path;
* private String type;
* Map forwardMap;
*
* }
* forwardMap {
* key="success";
* value="/del_success.jsp"
* key="error"
* value="/del_error.jsp"
* }
*
*
* Map map = new HashMap();
* map.put("/servlet/delUser", actionMapping);
* map.put("/servlet/addUser", actionMapping);
* map.put("/servlet/modifyUser", actionMapping);
* map.put("/servlet/queryUser", actionMapping);
*
* 如果是删除ActionMapping存储如下:
* actionMapping {
* path= "/servlet/delUser";
* type = "com.bjpowernode.servlet.DelUserAction";
* forwardMap {
* key="success",value="/del_success.jsp"
* key="error", value="/del_error.jsp"
* }
* }
*
*
* String path = "/servlet/delUser";
*
* 根据截取的URL请求,到Map中取得本次请求对应的Action
* ActionMappint actionMappint = (ActionMappint)map.get(path);
*
* 取得本请求对应的Action类的完整路径
* String type = actionMappint.getType(); //com.bjpowernode.servlet.DelUserAction
*
* 采用反射动态实例化Action
* Action action = (Action)class.forName(type).newInstance();
*
* 动态待用Action中的execute方法
* String forward = action.execute(request, response);
*
* 根据路径完成转向
* request.getRequestDispatcher(forward).forward(request, response);
*/
<?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">
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>com.bjpowernode.servlet.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
</web-app>