简单javaweb前端项目

本文介绍了一个简单的JavaWeb项目,涉及用户注册、登录、列表展示、信息修改和删除功能。通过JDBC连接数据库,使用Servlet、过滤器和EL与JSTL表达式实现业务逻辑。讲解了如何配置Filter、创建DBconn类以及处理用户请求转发和重定向。
摘要由CSDN通过智能技术生成

主要功能有: 涉及到的知识点有:

1.用户注册 1.JDBC

2.用户登录 2.Servlet

3.用户列表展示 3.过滤器

4.用户信息修改 4…EL与JSTL表达式

5.用户信息删除

新建数据库

数据库执行SQL语句

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');

建立对应的包
在这里插入图片描述

新建一个过滤器类 Filter

```java
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;
/**
1.两者都是为了初始化用,但是不推荐在构造函数中对servlet做初始化工作。
2.servlet实例的生命周期是由容器控制的。构造函数中的初始化工作只会在容器构造这个servlet时做一次。
3.servlet的实例是会被多个请求复用,但是构造函数却只能提供一次初始化,所以必须将初始化工作放入init中,由容器来控制。
*/
public class EncodingFilter implements Filter{
   
	public EncodingFilter(){
   
		System.out.println("过滤器构造");
	}
	public void destroy() {
   
		System.out.println("过滤器销毁");
	}
 
/**
过滤器拦截到响应url的请求后会先执行doFilter()方法中chain.doFilter()之前的代码,
然后执行下一个过滤器或者servelt。紧接着执行chain.doFilter()之后的代码
*/
	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("过滤器初始化");
	}
 
}

在web.xml进行过滤器的相应配置


```c
<?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>
  	<filter-name>EncodingFilter</filter-name>
  	<filter-class>com.filter.EncodingFilter</filter-class><!--全路径 从根包开始一直到类名-->
  </filter>
  <filter-mapping>
  	<filter-name>EncodingFilter</filter-name>
  	<url-pattern></url-pattern> <!--*即为过滤所有-->
  </filter-mapping>
 <welcome-file-list>
    <welcome-file>denglu.jsp</welcome-file>
  </welcome-file-list>
</web-app>

新建一个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(
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值