📄 ajaxhandlerservlet.java
字号:
package allan.ajax.action;
import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import allan.ajax.entity.User;
import allan.ajax.service.UserService;
public class AjaxHandlerServlet extends HttpServlet {
public void execute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String path = request.getServletPath();
path = path.substring(0, path.lastIndexOf("."));
String handler = getHandlerMapping().get(path);
if (handler == null) {
response.sendError(HttpServletResponse.SC_NOT_FOUND, "Unknown path:" + path);
return;
}
try {
response.setHeader("Cache-Control", "no-cache");
Class[] parameterTypes = new Class[] { HttpServletRequest.class, HttpServletResponse.class };
Method method = this.getClass().getDeclaredMethod(handler, parameterTypes);
method.invoke(this, request, response);
} catch (Exception e) {
e.printStackTrace();
throw new ServletException(e);
}
}
protected Map<String, String> getHandlerMapping() {
Map<String, String> handlers = new HashMap<String, String>();
handlers.put("/user/validateUserName", "validateUserName");
handlers.put("/user/add", "addUser");
handlers.put("/request/get", "handleGetParameters");
handlers.put("/request/post", "handlePostParameters");
return handlers;
}
protected void handleGetParameters(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=gbk");
PrintWriter out = response.getWriter();
String name = request.getParameter("name");
String gender = request.getParameter("gender");
String greetings = "尊敬的" + name;
if (gender.equals("m")) {
greetings += "先生";
} else {
greetings += "女士";
}
out.print(greetings);
out.print(",您好!");
out.close();
}
protected void handlePostParameters(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=gbk");
PrintWriter out = response.getWriter();
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
String gender = request.getParameter("gender");
String greetings = "尊敬的" + name;
if (gender.equals("m")) {
greetings += "先生";
} else {
greetings += "女士";
}
out.print(greetings);
out.print(",您好!");
out.close();
}
protected void validateUserName(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/plain");
PrintWriter out = response.getWriter();
String userName = request.getParameter("userName");
UserService userService = new UserService();
boolean exist = false;
try {
exist = userService.isUserNameInUser(userName);
} catch (Exception e) {
e.printStackTrace();
throw new ServletException(e);
}
if (exist) {
out.print("inuse");
} else {
out.print("good name");
}
out.close();
}
protected void addUser(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
User user = createUserFromRequest(request);
UserService userService = new UserService();
try {
userService.add(user);
} catch (Exception e) {
e.printStackTrace();
throw new ServletException(e);
}
}
protected User createUserFromRequest(HttpServletRequest request) {
String userName = request.getParameter("userName");
String password = request.getParameter("password");
String email = request.getParameter("email");
User user = new User();
user.setUserName(userName);
user.setPassword(password);
user.setEmail(email);
return user;
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
execute(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
execute(request, response);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -