public class ManagerLogin extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.getWriter().append("Served at: ").append(request.getContextPath()); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置头文件 response.setContentType("application/json; charset=utf8"); PrintWriter out = response.getWriter(); // 获取账号密码 String user = request.getParameter("user"); String psw = request.getParameter("psw"); // 设置响应map HashMap<String, Object> hashMap = new HashMap<String, Object>(); Manager manager = new Manager(); String result = null; try { result = manager.login(user, psw); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } if (result.equals("1")) { HttpSession session = request.getSession(); session.setAttribute("manager", user); session.setAttribute("manager_first", "1"); // 登录 hashMap.put("code", 0); hashMap.put("msg", "登录成功"); hashMap.put("url", request.getContextPath() + "/manager/01nav.jsp"); } else { hashMap.put("code", 1); hashMap.put("msg", result); } // response.sendRedirect(request.getContextPath() +"/test.jsp"); JSONObject json = JSONObject.fromObject(hashMap); out.write(json.toString()); }
时间: 2024-02-07 19:04:11 浏览: 35
这段代码是一个Java Servlet,处理了前端通过Ajax POST请求发送的登录数据。在doPost方法中,首先设置了响应头部的Content-Type为application/json; charset=utf8,并获取了请求中的账号和密码。接着,创建了一个HashMap对象,用于存储响应数据。然后,调用Manager类的login方法,返回一个结果字符串,如果结果字符串为"1",表示登录成功,将登录状态保存在session中,并将code设置为0,msg设置为"登录成功",url设置为"/manager/01nav.jsp"。否则,将code设置为1,msg设置为结果字符串。最后,将HashMap对象转换成JSON格式,通过PrintWriter将响应数据返回给前端。
相关问题
使用response.getWriter().append("Served at: ").append(request.getContextPath());的例子
以下是在 Java Servlet 中使用 response.getWriter().append("Served at: ").append(request.getContextPath()); 的一个简单例子:
```java
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.append("<html><body>");
out.append("Served at: ").append(request.getContextPath());
out.append("</body></html>");
}
}
```
在这个例子中,当客户端发出 GET 请求时,HelloServlet 将会响应一个包含 "Served at: /应用程序上下文路径" 的 HTML 页面。注意,@WebServlet("/hello") 注解指定了该 Servlet 处理 "/hello" 路径下的请求。在 doGet() 方法中,我们首先设置响应的内容类型为 "text/html;charset=UTF-8",然后获取 PrintWriter 对象,并向它追加 HTML 页面的内容。其中,response.getWriter().append("Served at: ").append(request.getContextPath()) 将 "Served at: " 和请求的上下文路径追加到输出流中。最终,客户端将接收到一个包含 "Served at: /应用程序上下文路径" 的 HTML 页面。
package com.itma.Servlet; import com.itma.mapper.UserInfMapper; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; import java.io.PrintWriter; @WebServlet("/login") public class UserController extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String uri = req.getRequestURI(); HttpSession session = req.getSession(); PrintWriter out = resp.getWriter(); if (uri.endsWith("login")) { String checkcode = req.getParameter("checkcode"); String username = req.getParameter("username"); String password = req.getParameter("password");; System.out.println("用户输入的验证码:" + checkcode); String code = (String) session.getAttribute("code"); if (code.equalsIgnoreCase(checkcode)){ System.out.println("用户名:"+username+""+"密码:"+password); }else{ out.append(-3+""); } } } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } }
这是一个Java Servlet的代码,用于用户登录功能。它引入了一个UserInfMapper类的mapper,使用了javax.servlet包。在doPost()方法中,获取了用户登录时输入的验证码、用户名和密码,并验证了验证码的正确性。如果验证码正确,就打印出用户名和密码。如果验证码错误,就返回错误码-3。在doGet()方法中,直接调用了doPost()方法,实现了GET和POST请求的统一处理。