Request應用之實現註冊功能
阿新 • • 發佈:2019-01-07
1、註冊分析
要實現註冊 首先要先獲取註冊的資訊
之後將獲取註冊的資訊匯入到資料庫中
2、註冊實現
1.註冊頁面的實現
這裡要注意表單form需要有action和method 以及每個表單元素要有name
2.獲取表單的資料
3.將資料儲存到資料庫中
3、程式碼實現
public class RegisterServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Map<String, String[]> parameterMap = request.getParameterMap(); User user = new User(); try { //使用BeanUtils進行自動對映封裝 //BeanUtils工作原理:將map中的資料 根據key與實體的屬性的對應關係進行封裝 //只要key的名字與實體的屬性的名字一樣 就自動封裝到實體中 BeanUtils.populate(user, parameterMap); } catch (Exception e) { e.printStackTrace();} //現在user物件已經封裝好了 //手動封裝uid UUID 隨機不重複的32位 java生成是36位 因為加了四個- 可能會超出 user.setUid(UUID.randomUUID().toString()); register(user); } public void register(User user) { //操作資料庫 QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource()); String sql = "insert into user values(?,?,?,?,?,?,?,?,?,?)"; try { qr.update(sql, user.getUid(),user.getUsername(),user.getPassword(),user.getName(),user.getEmail(),null,user.getBirthday(),user.getSex(),null,null); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
4、解決亂碼問題
post亂碼的解決:
request.setCharacterEncoding("UTF-8");
get亂碼的解決 也是通用方法:
String username = request.getParameter("username");
username = new String(username.getBytes("ISO-8859-1"),"UTF-8");
5、這裡跳轉切記 不要用轉發 要用重定向 因為網址不會變 重新整理後還是原頁面
response.SendRedict(request.getContentPath()+"/login.jsp");