IntellijIdea搭建⼀个完整的JavaWeb项⽬(⼆)⼿把⼿搭建⼀个完整的JavaWeb项⽬
本案例使⽤Servlet+jsp制作,⽤Intellij Idea IDE和Mysql数据库进⾏搭建,详细介绍了搭建过程及知识点。
主要功能有:
1.⽤户注册
2.⽤户登录
3.⽤户列表展⽰
4.⽤户信息修改
5.⽤户信息删除
涉及到的知识点有:
1.JDBC
2.Servlet
3.过滤器
4.EL与JSTL表达式
1.⾸先打开mysql数据库 新建⼀个数据库test,然后⽣成对应的表结构
CREATE TABLE `user` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`pwd` varchar(255) NOT NULL,
`sex` varchar(255) NOT NULL,
`home` varchar(255) NOT NULL,
`info` varchar(255) NOT NULL,
PRIMARY KEY  (`id`)
)
ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
INSERT INTO `user` VALUES ('3', '123', '123', '123', '123', '123');
INSERT INTO `user` VALUES ('4', '123123', '123123', '男', '北京', '123123');
这⾥使⽤到了navicat for mysql    这是⼀种mysql的图形界⾯化⼯具,后期可以⾮常⽅便的操作数据库。
2.然后打开Intellij Idea 新建⼀个web项⽬,见(⼀)。
3.在webroot下的WEB-INF下的lib中导⼊mysql的驱动jar包。
4.建⽴对应的包结构
com.javaweb.demo.filter  //过滤器 解决中⽂字符集乱码
com.javaweb.demo.util    //数据库连接⼯具类
com.ity  //实体类
com.javaweb.demo.dao      //数据操作类
com.javaweb.demo.servlet  //servlet类
5.在filter下新建⼀个EncodingFilter类⽤来解决中⽂字符集乱码,它需要实现Filter接⼝,并重写doFilter函数
package com.javaweb.demo.filter;
import javax.servlet.*;
import java.io.IOException;
public class EncodingFilter implements javax.servlet.Filter {
public EncodingFilter(){
System.out.println("过滤器构造");
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("过滤器初始化");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {        servletRequest.setCharacterEncoding("utf-8"); //将编码改为utf-8
servletResponse.setContentType("text/html;charset=utf-8");
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() {
System.out.println("过滤器销毁");
}
}
6.到l下进⾏对EncodingFilter相应的配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="/xml/ns/javaee"
xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_3_1.xsd"        version="3.1">
<display-name></display-name>
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>com.javaweb.demo.filter.EncodingFilter</filter-class><!-- 全路径从根包开始⼀直到类名 -->
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern><!-- /* 即为过滤所有 -->
</filter-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
7.在util下新建⼀个DBconn类⽤来处理对数据库的连接操作(⽤户名或密码按照⾃⼰的数据库更改)
public class DBconn {
static String url = "jdbc:mysql://localhost:3306/demo?useunicuee=true& characterEncoding=utf8"; // 数据库连接url
static String username = "root"; // 数据库⽤户名
static String password = "123456"; // ⽤户密码
static Connection conn = null; // 初始化⼀个数据连接 conn
static ResultSet rs = null; // 初始化⼀个结果集 rs
static PreparedStatement ps =null; // 初始化⼀个PreparedStatement对象 ps
public static void init(){
try {
Class.forName("sql.jdbc.Driver");
conn = Connection(url,username,password);
} catch (Exception e) {
System.out.println("init [SQL驱动程序初始化失败!]");
e.printStackTrace();
}
}
public static int addUpdDel(String sql){
int i = 0;
try {
PreparedStatement ps =  conn.prepareStatement(sql);
i =  ps.executeUpdate();
} catch (SQLException e) {
System.out.println("sql数据库增删改异常");
e.printStackTrace();
}
return i;
}
public static ResultSet selectSql(String sql){
try {
ps =  conn.prepareStatement(sql);
rs =  ps.executeQuery(sql);
} catch (SQLException e) {
System.out.println("sql数据库查询异常");
e.printStackTrace();
}
return rs;
}
public static void closeConn(){
try {
conn.close();
} catch (SQLException e) {
System.out.println("sql数据库关闭异常");
e.printStackTrace();
}
}
}
8.在entity下新建⼀个User实体类(实体即抽象出来的⽤户对象,对应数据库中的user表,表中每个字段在实体中为⼀个属性,也可以理解为⼀个User对象对应数据库中的user表⼀条记录)
private int id;
private String name;
private String pwd;
private String sex;
private String home;
private String info;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
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;
mysql下载jar包}
public String getHome() {
return home;
}
public void setHome(String home) {
this.home = home;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
}
9.在dao下新建⼀个UserDao接⼝  以及对应的⽅法实现类(使⽤接⼝类是为了规范开发)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。