location.href属于重定向还是转发_servlet2 单元测试、转发、重定向
生活随笔
收集整理的這篇文章主要介紹了
location.href属于重定向还是转发_servlet2 单元测试、转发、重定向
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
????????解決服務端接收數據亂碼問題。服務器默認采用 ISO8859-1 編碼響應內容。
// 1req.setCharacterEncoding("utf-8");// 2 byte[] bytes = req.getParameter("username").getBytes("iso-8859-1"); System.out.println("username:" + new String(bytes,0,bytes.length,"utf-8"));????????解決服務端發送到客戶端數據亂碼問題。
// 1 text/html,響應數據類型; resp.setContentType("text/html;charset=utf8;"); // 2 resp.setCharacterEncoding("utf-8"); resp.setHeader("Content-type","text/html;charset=utf8");????????單元測試。
????????src 同級目錄創建 test 文件夾,右鍵 -> Mark Directory as ->Sources Root,文件名采用測試的模塊名 + Test。
????????轉發。轉發的作用在服務器端,將請求發送給服務器上的其他資源,以共同完成一次請求的處理。使用forward跳轉時,是在服務器內部跳轉,地址欄不發生變化,屬于同一次請求。
request.getRequestDispatcher(“/目標URL-pattern”).forward(request, response);// 存數據request.setAttribute(key,value);// 取數據request.getAttribute(key);????????重定向。重定向作用在客戶端,客戶端將請求發送給服務器后,服務器響應給客戶端一個新的請求地址,客戶端重新發送新請求。
????????重定向可以指向任何的資源,包括當前應用程序中的其他資源、同一個站點上的其他應用程序中的資源、其他站點的資源。
response.sendRedirect(“目標URI”);// 帶數據response.sendRedirect(“目標URI?username=tom&ps=123”);// 接收數據request.getParameter(“username”);????????servlet 用戶管理系統。
????????目錄結構。
public class AddUserServlet extends HttpServlet { private IUserService userService = new UserServiceImpl(); @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 { req.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf8"); String username = req.getParameter("username"); String password = req.getParameter("password"); String age = req.getParameter("age"); String sex = req.getParameter("sex"); User user = new User(); user.setUsername(username); user.setPassword(password); user.setAge(Integer.valueOf(age)); user.setSex(Integer.valueOf(sex)); int i = userService.AddUser(user); if (i == 0) { resp.getWriter().write("添加失敗"); } else { resp.getWriter().write("添加成功"); resp.getWriter().write("查詢所有用戶"); } }}public class DeleteUserServlet extends HttpServlet { private IUserService userService = new UserServiceImpl(); @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 { req.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf8"); String username = req.getParameter("username"); int i = userService.DeleteUser(username); if (i == 0) { resp.getWriter().write("刪除失敗"); } else { resp.getWriter().write("刪除成功"); resp.getWriter().write("查詢所有用戶"); } }}public class GetUserListServlet extends HttpServlet { private IUserService userService = new UserServiceImpl(); @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 { req.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf8"); System.out.println("查詢所有的用戶:" + req); List userList = userService.getUserList(); // 轉發數據 req.setAttribute("userList",userList); // 轉發對象 req.getRequestDispatcher("ViewUserServlet").forward(req,resp); // 重定向 最好不帶參數 resp.sendRedirect("ViewUserServlet?username=zs&password=123"); resp.sendRedirect("http://www.baidu.com"); }}public class LoginUserServlet extends HttpServlet { private IUserService userService = new UserServiceImpl(); @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 { req.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf8"); String username = req.getParameter("username"); String password = req.getParameter("password"); User user = userService.login(username, password); if (user == null) { resp.getWriter().write("用戶名或密碼錯誤.."); } else { resp.getWriter().write("歡迎【" + req.getRemoteAddr() + username + "】登陸"); resp.getWriter().write("查詢所有用戶"); } }}public class SelectUserServlet extends HttpServlet { private IUserService userService = new UserServiceImpl(); @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 { req.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf8"); System.out.println("查詢所有的用戶:" + req); String username = req.getParameter("username"); User user = userService.SelectUser(username); StringBuffer buffer = new StringBuffer(); buffer.append(""); buffer.append(""); buffer.append(""); buffer.append(""); buffer.append("ID"); buffer.append("用戶名"); buffer.append("密碼"); buffer.append("年齡"); buffer.append("性別"); buffer.append(""); if (user != null) { buffer.append(""); buffer.append("" + user.getId() + ""); buffer.append("" + user.getUsername() + ""); buffer.append("" + user.getPassword() + ""); buffer.append("" + user.getAge() + ""); buffer.append("" + user.getSex() + ""); buffer.append(""); } buffer.append(""); buffer.append(""); buffer.append(""); buffer.append("查詢所有用戶"); resp.getWriter().write(buffer.toString()); }}public class UpdateUserServlet extends HttpServlet { private IUserService userService = new UserServiceImpl(); @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 { req.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf8"); String username = req.getParameter("username"); String password = req.getParameter("password"); String age = req.getParameter("age"); String sex = req.getParameter("sex"); User user = new User(); user.setUsername(username); user.setPassword(password); user.setAge(Integer.valueOf(age)); user.setSex(Integer.valueOf(sex)); int i = userService.UpdateUser(user); if (i == 0) { resp.getWriter().write("更新失敗"); } else { resp.getWriter().write("更新成功"); resp.getWriter().write("查詢所有用戶"); } }}public class ViewUserServlet extends HttpServlet { @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 { System.out.println("展示所有的用戶:" + req); resp.setContentType("text/html;charset=utf8"); System.out.println("username:" + req.getParameter("username")); List userList = (List) req.getAttribute("userList"); StringBuffer buffer = new StringBuffer(); buffer.append(""); buffer.append(""); buffer.append(""); buffer.append(""); buffer.append("ID"); buffer.append("用戶名"); buffer.append("密碼"); buffer.append("年齡"); buffer.append("性別"); buffer.append(""); if (userList != null) { for (User user: userList) { buffer.append(""); buffer.append("" + user.getId() + ""); buffer.append("" + user.getUsername() + ""); buffer.append("" + user.getPassword() + ""); buffer.append("" + user.getAge() + ""); buffer.append("" + user.getSex() + ""); buffer.append(""); } } buffer.append(""); buffer.append(""); buffer.append(""); resp.getWriter().write(buffer.toString()); }}public interface IUserDao { public User login(String username); public ListgetUserList(); public int AddUser(User user); public int DeleteUser(String name); public int UpdateUser(User user); public User SelectUser(String name);}public class UserDaoImpl implements IUserDao { @Override public User login(String username) { String sql = "select * from t_user where username = ?"; List users = DaoUtils.commonQuery(sql, User.class, username); if (users.isEmpty()) { return null; } return users.get(0); } @Override public ListgetUserList() { return DaoUtils.commonQuery("select * from t_user", User.class); } @Override public int AddUser(User user) { List userList = getUserList(); // 存在同名 for (User subUser: userList) { if (subUser.getUsername().equals(user.getUsername())) { return 0; } } String sql = "insert into t_user(username, password, age, sex) value(?, ?, ?, ?)"; int i = DaoUtils.commonUpdate(sql, user.getUsername(),user.getPassword(), user.getAge(),user.getSex()); return i; } @Override public int DeleteUser(String username) { String sql = "delete from t_user where username = ?"; int i = DaoUtils.commonUpdate(sql, username); return i; } @Override public int UpdateUser(User user) { String sql = "update t_user set password=?,age=?,sex=? where username = ?"; int i = DaoUtils.commonUpdate(sql,user.getPassword(),user.getAge(),user.getSex(),user.getUsername()); return i; } public User SelectUser(String name) { List users = DaoUtils.commonQuery("select * from t_user where username = ?", User.class, name); if (users.isEmpty()) { return null; } return users.get(0); }}@Datapublic class User { private Integer id; private String username; private String password; private Integer age; private Integer sex;}public interface IUserService { public User login(String username, String password); public ListgetUserList(); public int AddUser(User user); public int DeleteUser(String name); public int UpdateUser(User user); public User SelectUser(String name);}public class UserServiceImpl implements IUserService { private IUserDao userDao = new UserDaoImpl(); @Override public User login(String username, String password) { User user = userDao.login(username); if (user == null) { System.out.println("用戶名或密碼錯誤"); return null; } if (!user.getPassword().equals(password)) { System.out.println("用戶名或密碼錯誤"); return null; } return user; } @Override public ListgetUserList() { return userDao.getUserList(); } public int AddUser(User user) { return userDao.AddUser(user); } public int DeleteUser(String name) { return userDao.DeleteUser(name); } public int UpdateUser(User user) { return userDao.UpdateUser(user); } public User SelectUser(String name) { return userDao.SelectUser(name); }}public class DaoUtils { // 更改 public static int commonUpdate(String sql, Object ...args) { Connection connection = DBUtils.getConnection(); PreparedStatement prst = null; try { prst = connection.prepareStatement(sql); if (args != null && args.length > 0) { for (int i = 0; i < args.length; i ++) { prst.setObject(i + 1,args[i]); } } return prst.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { DBUtils.close(prst); } return 0; } // 查詢 public static ListcommonQuery(String sql, Class cls, Object ...args) { Connection connection = DBUtils.getConnection(); PreparedStatement prst = null; ResultSet resultSet = null; List list = new ArrayList<>(); try { prst = connection.prepareStatement(sql); if (args != null && args.length > 0) { for (int i = 0; i < args.length; i ++) { prst.setObject(i + 1,args[i]); } } resultSet = prst.executeQuery(); while (resultSet.next()) { T t = cls.newInstance(); Field[] fields = cls.getDeclaredFields(); for (Field field: fields) { // 設置動態給屬性賦值權限 field.setAccessible(true); Object value = null; try { value = resultSet.getObject(field.getName()); } catch (SQLException e) { // 出現實體字段和數據庫字段不一致 String columnName = DBUtils.getProperties().getProperty(field.getName()); value = resultSet.getObject(columnName); } field.set(t, value); } list.add(t); } } catch (SQLException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } finally { DBUtils.close(resultSet, prst); } return list; }}public class DBUtils { private static DataSource dataSource = null; private static Properties properties = new Properties(); private static ThreadLocal threadLocal = new ThreadLocal<>(); static { try { properties.load(DBUtils.class.getClassLoader().getResourceAsStream("jdbc.properties")); dataSource = DruidDataSourceFactory.createDataSource(properties); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } public static Properties getProperties() { return properties; } public static Connection getConnection() { Connection connection = threadLocal.get(); if (connection == null) { try { connection = dataSource.getConnection(); threadLocal.set(connection); } catch (SQLException e) { e.printStackTrace(); } } return connection; } public static void close(AutoCloseable ...args) { for (AutoCloseable obj: args) { if (obj != null) { try { obj.close(); } catch (Exception e) { e.printStackTrace(); } } }????}}#?jdbc.properties#連接設置driverClassName=com.mysql.cj.jdbc.Driverurl=jdbc:mysql://localhost:3306/mydb1?characterEncoding=utf-8username=rootpassword=Liu01234#初始化可連接數量,實際項目時要設置更大值initialSize=100#最大連接數量maxActive=500#最小空閑連接,當空閑連接小于此值時會開辟新當空間,直到最大連接數量minIdle=50#超時等待時間以毫秒為單位 1000等于1秒maxWait=5000<?xml version="1.0" encoding="UTF-8"?><web-app 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" version="2.5"> <servlet> <servlet-name>LoginUserServletservlet-name> <servlet-class>com.baidu.day.test1.controller.LoginUserServletservlet-class> servlet> <servlet-mapping> <servlet-name>LoginUserServletservlet-name> <url-pattern>/LoginUserServleturl-pattern> servlet-mapping> <servlet> <servlet-name>GetUserListServletservlet-name> <servlet-class>com.baidu.day.test1.controller.GetUserListServletservlet-class> servlet> <servlet-mapping> <servlet-name>GetUserListServletservlet-name> <url-pattern>/GetUserListServleturl-pattern> servlet-mapping> <servlet> <servlet-name>ViewUserServletservlet-name> <servlet-class>com.baidu.day.test1.controller.ViewUserServletservlet-class> servlet> <servlet-mapping> <servlet-name>ViewUserServletservlet-name> <url-pattern>/ViewUserServleturl-pattern> servlet-mapping> <servlet> <servlet-name>AddUserServletservlet-name> <servlet-class>com.baidu.day.test1.controller.AddUserServletservlet-class> servlet> <servlet-mapping> <servlet-name>AddUserServletservlet-name> <url-pattern>/AddUserServleturl-pattern> servlet-mapping> <servlet> <servlet-name>DeleteUserServletservlet-name> <servlet-class>com.baidu.day.test1.controller.DeleteUserServletservlet-class> servlet> <servlet-mapping> <servlet-name>DeleteUserServletservlet-name> <url-pattern>/DeleteUserServleturl-pattern> servlet-mapping> <servlet> <servlet-name>UpdateUserServletservlet-name> <servlet-class>com.baidu.day.test1.controller.UpdateUserServletservlet-class> servlet> <servlet-mapping> <servlet-name>UpdateUserServletservlet-name> <url-pattern>/UpdateUserServleturl-pattern> servlet-mapping> <servlet> <servlet-name>SelectUserServletservlet-name> <servlet-class>com.baidu.day.test1.controller.SelectUserServletservlet-class> servlet> <servlet-mapping> <servlet-name>SelectUserServletservlet-name> <url-pattern>/SelectUserServleturl-pattern> servlet-mapping>web-app><%-- index.jsp --%><%@ page contentType="text/html;charset=UTF-8" language="java" %><html> <head> <title>$Title$title> head> <body> <form method="post" action="LoginUserServlet"> username:<input type="text" name="username" value="zs"><br><br> password:<input type="text" name="password" value="123"><br><br> <input type="submit" value="登陸"> form> <br><br> <form method="post" action="AddUserServlet"> username:<input type="text" name="username" value="zs"><br><br> password:<input type="text" name="password" value="123"><br><br> age:<input type="text" name="age" value="12"><br><br> sex:<input type="text" name="sex" value="1"><br><br> <input type="submit" value="添加用戶"> form> <br><br> <form method="post" action="DeleteUserServlet"> username:<input type="text" name="username" value="zs"><br><br> <input type="submit" value="刪除用戶"> form> <br><br> <form method="post" action="SelectUserServlet"> username:<input type="text" name="username" value="zs"><br><br> <input type="submit" value="查詢用戶"> form> <br><br> <form method="post" action="UpdateUserServlet"> username:<input type="text" name="username" value="zs"><br><br> password:<input type="text" name="password" value="123"><br><br> age:<input type="text" name="age" value="12"><br><br> sex:<input type="text" name="sex" value="1"><br><br> <input type="submit" value="修改用戶"> form> <br><br> body>html>總結
以上是生活随笔為你收集整理的location.href属于重定向还是转发_servlet2 单元测试、转发、重定向的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 又一条时速350公里高铁铺轨:形成世界级
- 下一篇: 计算机图形学在线作业,电子科技16秋《计