javaweb完整项目源码_手把手搭建一个完整的javaweb项目(适合新手)

这篇博客详述了一个使用Servlet+jsp,结合MyEclipse和Mysql数据库的javaweb项目搭建过程,涵盖用户注册、登录、列表展示、修改和删除等功能。涉及JDBC、Servlet、过滤器和EL与JSTL表达式等知识点。并强调了编码过滤器解决中文乱码、数据库操作、Servlet创建与配置、请求参数与属性的区别、转发与重定向的不同,以及jsp页面的JSTL表达式使用。
摘要由CSDN通过智能技术生成

abeacfa251e35d456c11015185d90778.gif

本案例使用Servlet+jsp制作,用MyEclipse和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');

9e8d0aa6e8149bcece0ab5ac918d1f2d.png

这里使用到了navicat for mysql    这是一种mysql的图形界面化工具,后期可以非常方便的操作数据库。

2、然后打开MyEclipse新建一个web项目

3、在webroot下的WEB-INF下的lib中导入mysql的驱动jar包

4、建立对应的包结构 

com.filter   //过滤器 解决中文字符集乱码

com.util     //数据库连接工具类

com.entity   //实体类

com.dao      //数据操作类

com.servlet   //servlet类

bd6937298ad2ef611612d77a8f076372.png

5、在filter下新建一个EncodingFilter用来解决中文字符集乱码,它需要实现Filter接口,并重写doFilter函数

package com.filter;

import java.io.IOException;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;



public class EncodingFilter implements Filter{

    public EncodingFilter(){

        System.out.println("过滤器构造");

    }

    public void destroy() {

        System.out.println("过滤器销毁");

    }

    public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {

        request.setCharacterEncoding("utf-8"); //将编码改为utf-8

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

        chain.doFilter(request, response);

    }



    public void init(FilterConfig arg0) throws ServletException {

        System.out.println("过滤器初始化");

    }



}

6、到web.xml下进行对EncodingFilter相应的配置

<?xml  version="1.0" encoding="UTF-8"?>

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

  <display-name>display-name>    



  <filter>

      <filter-name>EncodingFilterfilter-name>

      <filter-class>com.filter.EncodingFilterfilter-class>

  filter>

  <filter-mapping>

      <filter-name>EncodingFilterfilter-name>

      <url-pattern>/*url-pattern> 

  filter-mapping>





  <welcome-file-list>

    <welcome-file>denglu.jspwelcome-file>

  welcome-file-list>

web-app>

7、在util下新建一个DBconn类用来处理对数据库的连接操作(用户名或密码按照自己的数据库更改)

package com.util;

import java.sql.*;

public class DBconn {

    static String url = "jdbc:mysql://localhost:3306/test?useunicuee=true& characterEncoding=utf8"; 

    static String username = "root"; 

    static String password = "root"; 

    static Connection  conn = null;

    static ResultSet rs = null;

    static PreparedStatement ps =null;

    public static void init(){

        try {

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

            conn = DriverManager.getConnection(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表一条记录)

package com.entity;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值