怎么看待Servlet和Jsp知识点,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
1.首先需要一些工具:
tomcat,mysql,Navicat For mysql,eclipse(javaee)
2.创建数据库
3.新建一个web项目
注意是Dynamic Web Project,module version选择2.5或者3.0都可以
4.部署tomcat
新建server,完成后完成以下配置,这样就能在eclipse里直接用tomcat服务器了。这里如果选择第一个的话,eclipse会自己下载一个简易版的tomcat。

5.整体把握
实现网页对数据库的查询或者新增,需要MVC开发模式,这里画了一个图,大概就是这样:

6.写代码的顺序是从下到上:pojo层---Dao层---Service层---servlet层
6.1pojo层代码编写:
写一个与数据库对应的类,包名以.pojo结尾。set get方法、构造方法、无参构造方法和toString方法都写一遍,反正alt+s自动生成。
package com.pojo;
public class User {
private int uid;
private String uname;
private String pwd;
private String sex;
private int age;
private String birth;
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 getBirth() {
return birth;
}
public void setBirth(String birth) {
this.birth = birth;
}
public User(int uid, String uname, String pwd, String sex, int age, String birth) {
super();
this.uid = uid;
this.uname = uname;
this.pwd = pwd;
this.sex = sex;
this.age = age;
this.birth = birth;
}
public User() {
super();
}
@Override
public String toString() {
return "User [uid=" + uid + ", uname=" + uname + ", pwd=" + pwd + ", sex=" + sex + ", age=" + age + ", birth="
+ birth + "]";
}
}
6.2Dao层代码编写
6.2.1接口
package com.dao;
import java.util.List;
import com.pojo.User;
public interface UserDao {
//登录
User checkUserLoginDao(String uname,String pwd);
//密码修改
int userChangePwdDao(String newPwd, int uid);
//显示所有信息
List<User> showAllDao();
//插入用户
int userRegDao(String uname, String pwd, String sex, String age, String birth);
}
6.2.2接口的实例化对象
这里以一个插入和查询的方法为例,按照基本步骤来就可以。
查询:
public User checkUserLoginDao(String uname, String pwd) {
//创建jdbc对象
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/test2","root","lijingjing");
//创建sql语句
String sql = "select * from t_user where uname=? and pwd=?";
//创建sql对象
ps = conn.prepareStatement(sql);
//给占位符赋值
ps.setString(1, uname);
ps.setString(2, pwd);
//ִ执行sql
rs = ps.executeQuery();
//遍历结果集
while(rs.next()) {
u = new User();
u.setAge(rs.getInt("age"));
u.setUid(rs.getInt("uid"));
u.setBirth(rs.getString("birth"));
u.setPwd(rs.getString("pwd"));
u.setSex(rs.getString("sex"));
u.setUname(rs.getString("uname"));
}
} catch (Exception e) {
e.printStackTrace();
}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;
}
插入的代码流程和查询大同小异,不同在于不需要rs结果集,返回值为int类型(表示受影响的行数),index = ps.executeUpdate();
另外为保证中文能够在数据库中正常显示,在加载驱动这一步时,数据库后面要加上?useUnicode=true&characterEncoding=UTF8
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test2?useUnicode=true&characterEncoding=UTF8","root","lijingjing");
这样数据访问层就写完了。
6.3Service层代码编写
6.3.1接口
一般这一层会对从Dao层取到的数据进行业务逻辑处理,这里只是简单的返回。
package com.service;
import java.util.List;
import com.pojo.User;
public interface UserService {
//登录
User checkUserLoginService(String uname,String pwd);
//修改密码
int userChangePwdService(String newPwd, int uid);
//展示所有用户信息
List<User> showAllService();
//注册
void userRegService(String uname, String pwd, String sex, String age, String birth);
}
6.3.2接口的实例化对象
继承上面的接口,实现其方法,创建Dao层对象,返回即可,代码不上了。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注天达云行业资讯频道,感谢您对天达云的支持。