jsp servler mysql mvc 库存管理信息系统_Servlet+jsp+jdbc+mvc思想实现信息管理系统——总结...

使用Myecplise 开发环境;

建立数据库,实现用户信息的读出和存入。

be76c845c3f421885d925e19b94f300d.png

新建一个web project项目,在WebRoot 下创建登陆主界面 login.jsp    ,该界面能实现 :

1) 登陆跳转    2)注册跳转

实现登陆功能:

需要读取数据库中存取的用户信息,登陆名uname 和 密码 pwd, 在src 中建立mvc分层实现,使代码更加清晰,可维护性高;创建实体类pojo(User,)读取用户信息的信息数据流转:servlet -->service-->dao-->service-->servlet ,在login.jsp中输入对应的操作符,UserServlet类中, 获取操作符,判断要调用的功能。   该功能为拿到登陆页面的uname,pwd,对数据库的账号和密码进行查询校验。,建立对应的文件包和类:

e6957598e55ffd40cf637a615461e4bf.png建立实体类的作用(引文csdn):https://blog.csdn.net/qq_27263999/article/details/50408913

UserServlet 中校验账户和密码代码段:

public class UserServlet extends HttpServlet {

protected void service(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

//设置请求编码格式

req.setCharacterEncoding("utf-8");

//设置响应编码格式

resp.setContentType("text/html;charset=utf-8");

//获取操作符,判断要调用的页面,及方法

String oper = req.getParameter("oper");

if("login".equals(oper)){

//调用登陆处理

checkUserLogin(req,resp);

}else{

logger.debug("没有此操作符"+oper);

}

}

//处理登陆

private void checkUserLogin(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {

//获取请求信息

String uname = req.getParameter("uname");

String pwd = req.getParameter("pwd");

//处理请求信息

//获取service 层对象

UserService us = new UserServiceImpl();

//校验

User u = us.checkUserLoginService(uname, pwd);

if(u != null){

//获取session对象

HttpSession hs = req.getSession();

//将用户存取到session中

hs.setAttribute("user", u);

//重定向

resp.sendRedirect("main/main.jsp");

}else{

//添加标识符到request中

req.setAttribute("flag", 0);

//请求转发

req.getRequestDispatcher("/login.jsp").forward(req, resp);

}

}

}

就service及serviceimpl、dao,daoimpl代码段:

public interface UserService {

/**

* 检验用户登陆

* @param uname

* @param pwd

* @return

*/

User checkUserLoginService(String uname,String pwd);

}

impl段:

public class UserServiceImpl implements UserService {

//创建dao层

UserDao ud = new UserDaoImpl();

public User checkUserLoginService(String uname, String pwd) {

User u = ud.checkUserLoginDao(uname, pwd);

return u;

}

dao段:

public interface UserDao {

/**

* 根据用户名和密码查询信息

* @param uname

* @param pwd

* @return

*/

User checkUserLoginDao(String uname,String pwd);

daoimpl段:

public class UserDaoImpl implements UserDao {

public User checkUserLoginDao(String uname, String pwd) {

Connection conn = null;

PreparedStatement ps = null;

ResultSet rs = null;

User u = null;

try {

Class.forName("com.mysql.jdbc.Driver");

conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/0925", "root", "123");

String sql = "select * from t_user where uname=? and pwd=?";

ps = conn.prepareStatement(sql);

ps.setString(1, uname);

ps.setString(2, pwd);

rs = ps.executeQuery();

while(rs.next()){

u = new User();

u.setUid(rs.getInt("uid"));

u.setUname(rs.getString("uname"));

u.setPwd(rs.getString("pwd"));

u.setSex(rs.getString("sex"));

u.setAge(rs.getInt("age"));

u.setBirth(rs.getString("birth"));

}

} catch (Exception e) {

// TODO: handle exception

}finally{

try {

rs.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try {

ps.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try {

conn.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

return u;

}

jdbc:1、声明jdbc对象,2、创建变量、try-catch语句块{    3、加载驱动,4、获取连接,5、创建sql命令 6、创建sql命令对象,7、给占位符赋值    8、执行    }        9、关闭资源     10、返回

当查询到输入的用户名和密码存在于数据库中,则使用  重定向 实现跳转到主页面main.jsp    ,失败则使用请求转发

重定向:resp.sendRedirect("main/main.jsp");        请求转发:req.getRequestDispatcher("/login.jsp").forward(req,resp);

登陆成功进入主界面:可实现的功能:

1) 查看个人信息    2)修改密码    3)查看用户信息    4)退出功能

在WebbRoot 下新建文件夹main,创建main.jsp 主界面。

查看个人信息,新建form 表单,显示用户的个人信息,使用session 技术,在用户登陆到界面时,session 会保存当前账户的所有信息,

所以在userinfo.jsp 中 拿到session 对象,就能拿到该账户的所有信息,

用户IDpx.gif用户名密码性别年龄出生年月

String sex=((User)session.getAttribute("user")).getSex();

if("1".equals(sex)){

%>

男女

修改密码功能:

获取修改密码的操作符,创建修改密码页面reg.jsp,    使用校验两次密码一致且不能为空

$(function(){

//校验密码修改

$("#fm").submit(function(){

if($("#newPwd").val()==""){//校验新密码

alert("新密码不能为空");

return false;

}else if($("#cfPwd").val()==""){//校验确认密码

alert("确认密码不能为空");

return false;

}else if($("#newPwd").val()!=$("#cfPwd").val()){//校验新密码和确认密码是否一致

alert("两次密码 不一致");

return false;

}else{

return true;

}

})

})

在 UserServlet中 建立修改密码功能,UserChangePwd(req,resp),    在service .dao层中 实现数据的流转,存入到数据库中,使用sql 语句update t_user set pwd=? where uid=?    ,在使用HttpSession 获取session 对象,使用hs.setAttribute("pwd",true);保存对象信息在request 作用域中,在 login.jsp 中拿到该信息,

//判断是否是账号密码修改界面

Object pwd = session.getAttribute("pwd");

if(pwd != null){

%>

用户密码修改成功

session.removeAttribute("pwd");

%>

在拿到只是,,需要使用session.removeAttribute("pwd"),不然login.jsp界面会一致显示 用户密码修改成功,使用session 后,销毁,当用户登陆时,重新拿到新的session。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值