您的位置:首页 > Web前端 > JavaScript

第十二次课:Servlet实现用户管理

2015-04-15 09:11 351 查看
一、Servlet使用
1、新建servlet包
2、新建FirstServlet类(new-Servlet),父类为HttpServlet
public void destroy() {
super.destroy();
}

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.println("<h1>hello</h1>");

out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);

}
3、查看部署文件(Web.xml)
<servlet>
<servlet-name>FirstSevlet</servlet-name>
<servlet-class>servlet.FirstSevlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FirstSevlet</servlet-name>
<url-pattern>/user/FirstSevlet</url-pattern>
</servlet-mapping>
4、地址栏访问http://localhost:8080/test/user/FirstSevlet
页面显示hello
二、实现用户登录处理
1、登陆页内容
<FORM METHOD=POST ACTION="user/UserServlet?type=login">
<table border="0" style="margin:10px 0 0 10px;">
<tbody><tr>
<td width="50%" valign="top">用户名:</td>
<td><input type="text" name="name" class="txt" size="10"></td>
</tr>
<tr>
<td>密  码:</td>
<td>
<INPUT TYPE="password" NAME="password" size="10" class="txt">
</td>
</tr>
<tr>
<td align="center"><INPUT class="txt" TYPE="submit" value="登录"></td>
<td><INPUT class="txt"TYPE="button" onclick="location.href='register.jsp'" value="注册"></td>
</tr>
</tbody>
</table>
</form>
2、新建UserServlet类(url:user/UserServlet)
doPost方法代码:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

String type=request.getParameter("type");
if("login".equals(type)){

String name = request.getParameter("name");
String pwd = request.getParameter("password");
UserDAO dao=new UserDAO();
User u=dao.login(name, pwd);

if(u!=null){
//request.getRequestDispatcher("index.php").forward(request, response);

request.getSession().setAttribute("user",u); //session实现保存用户信息
response.sendRedirect("../index.jsp");
}else{
response.sendRedirect("../index.jsp");
}
}

}
其中UserDAO中login()方法代码
public class UserDAO {

public User login(String name,String pwd)
{
User u=null; //添加

Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;

String sql="select * from users where name=? and password=?";

try {
Class.forName(Const.DRIVER);
conn=DriverManager.getConnection(Const.URL, Const.USER, Const.PASSWORD);
ps=conn.prepareStatement(sql);

ps.setString(1, name);
ps.setString(2, pwd);
rs=ps.executeQuery();
if(rs.next()){
u=new User();
u.setUid(rs.getInt("uid"));
u.setName(rs.getString("name"));
u.setPassword(rs.getString("password"));

}

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

try {
if(rs!=null)
rs.close();

if(ps!=null)
ps.close();

if(conn!=null)
conn.close();

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return u;
}
3、web.xml部署
<servlet>

<servlet-name>UserServlet</servlet-name>
<servlet-class>servlet.UserServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UserServlet</servlet-name>
<url-pattern>/user/UserServlet</url-pattern>
</servlet-mapping>
4、实现显示登录用户名等信息
left部分判断是否登录过用户,如果登录显示相关信息
<div class="person">
<img src="images/personal.gif">
<%
User user=(User)session.getAttribute("user");
if(user==null)
{
%>
<FORM METHOD=POST ACTION="user/UserServlet?type=login">
<table border="0" style="margin:10px 0 0 10px;">
<tbody><tr>
<td width="50%" valign="top">用户名:</td>
<td><input type="text" name="name" class="txt" size="10"></td>
</tr>
<tr>
<td>密  码:</td>
<td>
<INPUT TYPE="password" NAME="password" size="10" class="txt">
</td>
</tr>
<tr>
<td align="center"><INPUT class="txt" TYPE="submit" value="登录"></td>
<td><INPUT class="txt"TYPE="button" onclick="location.href='register.jsp'" value="注册"></td>
</tr>
</tbody>
</table>
</form>
<%}else{%>
<ul>
<li>您好:</li>
<li><%=user.getName() %></li>
<li><a href="person.jsp">个人信息:</a></li>
<li><a href="user/UserServlet?type=exit">退出</a></li>
</ul>
<%} %>

</div>
三、Servlet实现用户注销
1、left页
<a href="/user/UserServlet?type=exit">注销</a>
2、UserServlet的doGet方法实现用户注销,返回首页

protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

String type=request.getParameter("type");
if("exit".equals(type)){
request.getSession().invalidate();
response.sendRedirect("../index.jsp");
}
}
四、Servlet实现删除用户功能
1、user_view.jsp实现显示用户信息(admin/user_view.jsp)
<tr>
<td><%=u.getUid()%></td>
<td><%=u.getName()%></td>
<td><%=u.getEmail()%></td>
<td><a href="../user/UserSevlet?type=delete&uid=<%=u.getUid()%>">删除</a></td>
<td><a href="#">修改</a></td>
<td>详细</td>
</tr>
2、UserServlet的doGet方法实现删除用户
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
String type=request.getParameter("type");
if("exit".equals(type)){
request.getSession().invalidate();
response.sendRedirect("../index.jsp");
}else if("delete".equals(type)){
String uid=request.getParameter("uid");
UserDAO dao=new UserDAO();
dao.delete(Integer.parseInt(uid));
response.sendRedirect("../admin/index.jsp");

}
路径关系
---admin/index.jsp(后台主页)①
---admin/user_view.jsp(后台查看用户信息页)②
---user/UserServlet③
---index.jsp(前台主页)④
③-->④response.sendRedirect("../index.jsp");
③-->① response.sendRedirect("../admin/index.jsp");
④-->③ user/UserServlet
①或②-->③ ../user/UserServlet
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JSP Servlet 用户管理