您的位置:首页 > 运维架构 > 网站架构

【javaweb:Servlet】采用BeanUtils进行网站注册的Servlet

2018-01-20 19:28 656 查看
package indi.register;

import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.sql.SQLException;
import java.util.Map;
import java.util.UUID;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.dbutils.QueryRunner;

import indi.domain.User;
import indi.utils.DataSourceUtils;

public class RegisterServletTest extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置request的解码方式为UTF-8,但是这只能针对post请求方式。如果是get请求方式请采用最基本的操作的方式(可同时用于get和post)
//这操作方式就是
//String str=new String(string.getBytes("iso8859-1"),"UTF-8");string假设是一个从request中获取的某个原本是中文的参数。
//因为request默认是用iso8959-1进行解码,那么我们就用sio8859-1进行编码,再用UTF-8进行解码就可以获取网页端的中文字符!
request.setCharacterEncoding("UTF-8");
//1.从请求体中获取注册的信息
Map<String, String[]> parameterMap = request.getParameterMap();

//2.将注册的信息的Map集合运用BeanUtils进行封装打包成User对象。
//BeanUtils工作原理:将Map中的数据根据key与实体的属性的对应关系进行封装
//只要key的名字与实体的属性的名字一样,就自动封装到实体中。
User user=new User();
try {
BeanUtils.populate(user, parameterMap);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
//3.还差个uid,所以手动封装一个uid,UUID的这个方法可以参数一个32位的随机数,然后中间有空格,最终形成了36位。
user.setUid(UUID.randomUUID().toString());
//4.将参数传递给一个业务处理方法
try {
regist(user);
} catch (SQLException e) {
throw new RuntimeException(e);
}
//5、认为注册成功跳转到登录页面
//request.getContextPath()获取web应用的名称,便于修改工程名称后这个位置的名称不受影响。
response.sendRedirect(request.getContextPath()+"/login.jsp");
}

public void regist(User user) throws SQLException {
//1.创建QueryRuner对象
QueryRunner qr=new QueryRunner(DataSourceUtils.getDataSource());
//2.创建sql语句
String sql="insert into user values(?,?,?,?,?,?,?,?,?,?)";
//3.运用QueryRunner对象的update方法。
Object[] object= {user.getUid(),user.getUsername(),user.getPassword(),user.getName(),user.getEmail(),
null,user.getBirthday(),user.getSex(),null,null};
qr.update(sql,object);
}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐