目录结构:
User_Servlet.java主要代码:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.print("111111111");//查看是否执行到这个方法
doPost(request,response);
//因为页面中的<a>默认是get方法,所以先执行doGet方法,
//所以想要执行doPost里面的输出代码需要get方法里面调用post方法
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
//用于处理乱码 ,但是只适用于post
String method=request.getParameter("type");
//定义一个字符串用来接受type值
if("register".equals(method)){//如果值为register则进行注册处理
Date d=new Date();//获取系统当前的时间
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//将日期转换成想要的格式
String date=df.format(d);
Date da;
try {
da = df.parse(date);
String avator="images/avator.png";
String title=request.getParameter("title");
double money=Double.valueOf(request.getParameter("money"));
UserVO uv=new UserVO();
uv.setTitle(title);
uv.setTime(da);
uv.setAvator(avator);
uv.setMoney(money);
UserDAO ud=new UserDAO();
boolean b=ud.insert(uv);
if(b==true){
//执行成功跳到 RegisteSuccess.jsp,进行页面显示反馈给用户
request.getRequestDispatcher("Registe/RegisteSuccess.jsp").forward(request, response);
}else{
request.getRequestDispatcher("Registe/Failure.jsp").forward(request, response);
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}//因为我们要的是date格式,所以要将字符创转换成date格式
}else if("update".equals(method)){//如果值为update则进行修改处理
request.setCharacterEncoding("UTF-8");
String title=request.getParameter("title");
double money=Double.valueOf(request.getParameter("money"));
String userid=request.getParameter("userid");
int id=Integer.parseInt(userid);
UserVO uv=new UserVO();
uv.setUserid(id);
uv.setTitle(title);
uv.setMoney(money);
UserDAO ud=new UserDAO();
boolean b=ud.update(uv);
if(b==true){
//执行成功跳到 RegisteSuccess.jsp,进行页面显示反馈给用户
request.getRequestDispatcher("Registe/RegisteSuccess.jsp").forward(request, response);
}else{
request.getRequestDispatcher("Registe/Failure.jsp").forward(request, response);
}
}else if("delete".equals(method)){//如果值为delete则进行删除处理
String id=request.getParameter("userid");
UserVO uv=new UserVO();
int userid=Integer.parseInt(id);
uv.setUserid(userid);
UserDAO ud=new UserDAO();
boolean b=ud.delete(uv);
if(b==true){
//执行成功跳到 RegisteSuccess.jsp,进行页面显示反馈给用户
request.getRequestDispatcher("Registe/RegisteSuccess.jsp").forward(request, response);
}
}
}
RegisteSuccess.jsp代码:
<body>
<table >
<tr>
<td>编号</td>
<td>时间</td>
<td>图片</td>
<td>标题</td>
<td>赏金</td>
<td>操作1</td>
<td>操作2</td>
</tr>
<%
UserDAO ud=new UserDAO();
List<UserVO> li=ud.query();
for(UserVO sv:li){
%>
<tr>
<td><%=sv.getUserid()%></td>
<td><%=sv.getTime() %></td>
<td><img src="<%=sv.getAvator()%>"/></td>
<td><%=sv.getTitle() %></td>
<td><%=sv.getMoney()%></td>
<td><a href="User_Servlet?type=delete&&userid=<%=sv.getUserid()
%>" name="type">删除</a>
<!-- type的值为delete,delete将会传到servlet里面并找到删除对应的方法执行代码 -->
<!--标签a默认get方式-->
<td><a href="Registe/Update.jsp?userid=<%=sv.getUserid()%>&title=<%=sv.getTitle()
%>&money=<%=sv.getMoney()%>">修改</a></td>
<!--修改需要跳到Update.jsp页面进行修改之后再进行提交 -->
</tr>
<%
}
%>
</table>
Update.jsp代码:
<body>
<form action="../User_Servlet?userid=<%=request.getParameter("userid")%>" method="post">
<input type="hidden" name="type" value="update">
<!-- 设置一个隐藏的input标签用于提交type值,type值在servlet中用来判断处理模块代码-->
<table>
<tr>
<td>编号</td> <!-- 不可改变的 -->
<td>标题</td>
<td>打赏</td>
</tr>
<!-- 显示点击修改那 一条信息-->
<% String str=new String(request.getParameter("title").getBytes("ISO8859-1"),"UTF-8");%>
<!-- String str处理乱码-->
<tr>
<td> <input type="text" name="userid" value="<%=request.getParameter("userid") %>" disabled="disabled"></td>
<td><input type="text" name="title" value="<%=request.getParameter("title")%>"></td>
<td><input type="text" name="money" value="<%=request.getParameter("money") %>"></td>
<td><input type="submit" value="修改"></td>
</tr>
</table>
</form>
结果演示:
注册:
修改:
删除: