Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java EE 综合讨论区  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 Re:向高手求代码(“修改密码”功能的Action(业务逻辑)) [Re:我要飞]
lisliefor





发贴: 287
积分: 7
于 2006-06-22 11:45 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
MVC模式:
**修改密码的页面:UpdatePassword.jsp
<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>password</title>
<%
  String msg = (String)request.getAttribute("msg");
  msg = (msg==null)?"":msg; //第一次进入该页面msg获取过来的值为空
%>
</head>
<body>
  <br>    <%=msg %>
  <form name="up" method="post" action="/Example/UpdateServlet">
  <br>Enter old password:    <input type="password" name="oldpsw">
  <br>Enter new password:    <input type="password" name="newpsw">
  <br>Enter password again:    <input type="password" name="repsw">
  <br>    <input type="submit" name="s" value="提交">    <input type="reset" name="r" value="重置">
  </form>
</body>
</html>

**相应servlet:UpdateServlet
package update;

import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class UpdateServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
  private static final String CONTENT_TYPE = "text/html; charset=GBK";
  public UpdateServlet() {
    super();
  }   
  
  
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //设置编码方式
    response.setContentType(CONTENT_TYPE);
    ServletContext context = getServletContext();
    String target = "UpdatePassword.jsp"; //设置跳转页面,servlet中,页面绝对地址不需要加工程名;而在jsp页面中则需要,比如:表单action指向的地址
    String msg = "";
    String username = (String)request.getSession().getAttribute("username"); //这里假设该用户登陆时的用户名你已经保存在session中
    String oldpsw = (String)request.getParameter("oldpsw"); //getParameter("....")引号内的字符串对应页面文本框的name
    String newpsw = (String)request.getParameter("newpsw"); //新密码和确认密码是否相等,完全可以放在页面中,通过java scripts判断。(同样输入是否为空、字符是否合法、字符长度等,都可以放到那判断)
    String repsw = (String)request.getParameter("repsw");
    
    if(newpsw.equals(repsw)){
      UpdateDAO ud = new UpdateDAO();
      ArrayList array = new ArrayList();
      //成功查询到该用户
      if(ud.Update(username,array)){
        //取出密码,虽然array中只有一个元素,取值操作仍然要放在循环中
        String psw = "";
        for(int i=0;i<array.size();i++){
          psw = (String)array.getLight Bulb;
        }
        //数据库取出的密码跟页面提交密码比较
        if(psw.equals(oldpsw)){
          /*
           *     数据库修改的部分留给你完成吧
           *     只需要修改SQL操作语句即可
           *
           */
          msg = "密码修改成功!";
        }
        else{
          msg = "旧密码不正确,请重新输入!";
        }
      }
      else{
        msg = "该用户名不存在!";
      }
      request.setAttribute("msg",msg);
      
      RequestDispatcher requestDis = context.getRequestDispatcher(target);
     requestDis.forward(request, response);
    }
  }   
  
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request,response);
  }      
}

**数据处理beans:UpdateDAO
package update;

import java.sql.*;
import java.util.ArrayList;

public class UpdateDAO {

  public boolean Update(String username,ArrayList array)
  {
    Connection con;
    Statement sql;
    ResultSet rs;
    boolean Flag = false;
    //桥接法驱动
    try
    {
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    }
    catch(ClassNotFoundException e){}
    
    
    try
    {
      //test为跟数据库关联的数据源名
      con = DriverManager.getConnection("jdbc:odbc:test","","");
      sql = con.createStatement();
      /*    假设数据库中用户表如下:
       *    表名:user
       *    各字段:
       *    username(用户名) password(密码) pflag(用户权限)
       *
       */
      rs = sql.executeQuery("select password from user where username='"+username+"'");
      while(rs.next()){
        Flag = true;
        String password = rs.getString(1);
        array.add(password);
      }
    }
    catch(SQLException e1)
    {
      System.err.println(e1) ;
    }
    return Flag;
  }
}




话题树型展开
人气 标题 作者 字数 发贴时间
14477 向高手求代码(“修改密码”功能的Action(业务逻辑)) 我要飞 111 2006-06-19 16:32
12353 Re:向高手求代码(“修改密码”功能的Action(业务逻辑)) jigsaw 33 2006-06-20 10:06
12349 Re:向高手求代码(“修改密码”功能的Action(业务逻辑)) zcjl 76 2006-06-20 10:33
12511 Re:向高手求代码(“修改密码”功能的Action(业务逻辑)) lisliefor 210 2006-06-22 10:29
12431 Re:向高手求代码(“修改密码”功能的Action(业务逻辑)) lisliefor 211 2006-06-22 10:45
12356 Re:向高手求代码(“修改密码”功能的Action(业务逻辑)) lisliefor 130 2006-06-22 10:48
12640 Re:向高手求代码(“修改密码”功能的Action(业务逻辑)) lisliefor 53 2006-06-22 11:07
13001 Re:向高手求代码(“修改密码”功能的Action(业务逻辑)) lisliefor 4106 2006-06-22 11:45

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923