JSP和Servlet配合使⽤的⼀个案例
学习主题:JSP和Servlet配合使⽤
学习⽬标:
1 掌握 JSP访问原理
2 掌握JSP引擎
3 掌握JSP指令
01登录页⾯创建和模版介绍和使⽤
1.1上机练习
1.1.1根据视频讲解添加前段标签快捷插件
1.1.2下载模板资源,熟悉模板中提供资源
02系统页⾯创建&系统需求分析
2.2 简答题
2.2.1 根据视频,请写出登录功能的实现思路?
项⽬名称:
卡塞尔学院后台管理
项⽬需求:
⽤户登录
⽤户退出
⽤户注册
功能分析:
⽤户登录:根据⽤户名和密码查询⽤户信息。查到则登录成功,查不到则登录失败。
⽤户退出:销毁session
⽤户注册:将该⽤户的信息存储到数据库
数据库设计:
创建⽤户表 t_user
⽤户 id uid
⽤户姓名 uname
⽤户密码 pwd
⽤户性别 sex
⽤户年龄 age
出⽣⽇期 birthday
SQL语句设计:
⽤户登录
select * from t_user where name=? and pwd=?
⽤户注册
insert into t_user values(default,?,?,?,?,?)
代码实现:
查看源代码
2.2.2 视频中要完成的三个功能需求分别是?
⽤户登录:根据⽤户名和密码查询⽤户信息。查到则登录成功,查不到则登录失败。
⽤户退出:销毁session
⽤户注册:将该⽤户的信息存储到数据库
jsp创建2.3.1 根据视频讲解,独⽴完成主页⾯模板的套⽤实现。
03登录Servlet创建和MVC思想
3.1 编程题
3.2.1 根据视频中的需求分析,使⽤MySQL完成⽤户信息表的创建,将表创建语句和测试数据SQL作为答案
3.2.2 修改登录页⾯数据提交的action地址
截图作为答案
3.2.3 创建登录Servlet,并在Servlet完成编码设置,已经登录信息的获取的代码的编写,将实现代码粘贴作为答案
public class UserServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
//设置请求编码格式
req.setCharacterEncoding("utf-8");
//设置响应编码格式
resp.setContentType("text/html;charset=utf-8");
//获取请求信息
String Parameter("uname");
String Parameter("pwd");
//处理请求信息
System.out.println(uname+"--"+pwd);
//响应处理结果
}
}
3.2.4 修改登录页⾯中表单中⽤户名和密码提交的键名,,将修改后的表单代码粘贴作为答案
<input type="text" class="input input-big" name="uname" placeholder="登录账号" data-validate="required:请填写账号" />
<input type="password" class="input input-big" name="pwd" placeholder="登录密码" data-validate="required:请填写密码" />
3.2.5 简述MVC的编程思想及其好处
M:model service层和dao层和实体类层
V:view 视图层jsp页⾯等
C:controller 控制层servlet
04MVC实现登录查询⽤户信息(A)
4.3.1 根据视频讲解,在项⽬中完成MVC中service层和Dao的创建,只需要完成接⼝及其实现类的创建,先不声明功能⽅法。
4.3.2 根据视频创建User实体类
package com.bjsxt.pojo;
import java.io.Serializable;
public class User implements Serializable {
private int uid;
private String uname;
private String pwd;
private String sex;
private int age;
private String birthday;
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getBirthday() {
return birthday;
}
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result
+ ((birthday == null) ? 0 : birthday.hashCode());
result = prime * result + ((pwd == null) ? 0 : pwd.hashCode());
result = prime * result + ((sex == null) ? 0 : sex.hashCode());
result = prime * result + uid;
result = prime * result + ((uname == null) ? 0 : uname.hashCode()); return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != Class())
return false;
User other = (User) obj;
if (age != other.age)
return false;
if (birthday == null) {
if (other.birthday != null)
return false;
} else if (!birthday.equals(other.birthday))
return false;
if (pwd == null) {
if (other.pwd != null)
return false;
} else if (!pwd.equals(other.pwd))
return false;
if (sex == null) {
if (other.sex != null)
return false;
} else if (!sex.equals(other.sex))
return false;
if (uid != other.uid)
return false;
if (uname == null) {
if (other.uname != null)
return false;
} else if (!uname.equals(other.uname))
return false;
return true;
}
@Override
public String toString() {
return "User [uid=" + uid + ", uname=" + uname + ", pwd=" + pwd + ", sex=" + sex + ", age=" + age + ", birthday=" + birthday
+ "]";
}
public User(int uid, String uname, String pwd, String sex, int age,
String birthday) {
super();
this.uid = uid;
this.uname = uname;
this.pwd = pwd;
this.sex = sex;
this.age = age;
this.age = age;
this.birthday = birthday;
}
public User() {
super();
}
}
4.3.3 根据视频讲解导⼊MySQL的jar包,并导⼊数据库操作⼯具类以及db.properties的配置db.properties放在src下
4.3.4 根据视频完成业务层和数据库层功能代码实现
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论