Servlet随笔-基础servlet创建

基础servlet创建

完整项目目录
在这里插入图片描述

创建web项目

  • 方式一
    1.新建普通的java类
    2.继承httpservlet类
    3.重写service()方法
    4.配置web.xml配置项目(webcontent/Web-inf目录下的web.xml)
//1.新建普通java类
public class servlet1 extends HttpServlet{//继承HttpServlet
	//默认的servlet1会波浪报错,选中按F2,选择Add generated serial version ID
	private static final long serialVersionUID = 4085465249049170804L;
	//3.重写service()方法
	//按住alt+shift+S在弹出界面选择Override/Implement Methods在弹出界面选择service(httpServletRequest,HttpServletResponse)
	@Override
	protected void service(HttpServletRequest request1, HttpServletResponse response2) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("访问成功咯");
		//response2.getWriter().write("<h1>hello world</h1>");
	}
}

配置web.xml

在此目录下!
在此代码下添加在这里插入图片描述

<servlet>
		<servlet-name>ce1</servlet-name><!-- 自定义名称,给服务器看,与servlet-mapping标签中的servlet-name值一致 -->
		<servlet-class>xyz.xkun.servlet1.servlet1</servlet-class><!-- 当前配置的servlet类的路径:按住ctrl键鼠标能点到类表示路径正确 -->
</servlet>
<!-- 配置servlet的映射 -->
<servlet-mapping>
	<servlet-name>ce1</servlet-name><!-- 自定义名称,给服务器看的,与servlet标签中servlet-name的值一致 -->
	<url-pattern>/ce1</url-pattern><!-- 对外的访问路径,给浏览器访问看的;路径前要加"/" -->
</servlet-mapping>

然后部署项目就行了

下面是一个很简单的模拟登录

完整目录在这里插入图片描述

A内代码

package xyz.xkun.testA;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class A extends HttpServlet {

	private static final long serialVersionUID = 5149106642618516743L;

	@Override
	protected void service(HttpServletRequest request1, HttpServletResponse response2)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("欢迎访问A");
		response2.setContentType("text/html;charset=UTF-8");
		String str = "<form action='goB' method='post'>";
		str += "用户名:<input type='text' name='uname'>";
		str += "密码:<input type='password' name='upwd' >";
		str += "<input type='submit' value='登录'>";
		str += "</form>";
		response2.getWriter().write(str);

	}
}

B内代码

package xyz.xkun.testB;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import xyz.xkun.User.User;
import xyz.xkun.Util.DBUtil;

public class B extends HttpServlet {

	private static final long serialVersionUID = 2575623753348589116L;

	@Override
	protected void service(HttpServletRequest request1, HttpServletResponse response2)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		response2.setContentType("text/html;charset=UTF-8");
		System.out.println("欢迎访问B");
		String uname = request1.getParameter("uname");
		String upwd = request1.getParameter("upwd");
		System.out.println("用户名:" + uname);
		System.out.println("密码:" + upwd);
		if (uname == "" || upwd == "") {
			response2.getWriter().write("用户名或密码为空!");
			return;
		}
		User user = findUser(uname);

		if (user == null) {
			response2.getWriter().write("查无此用户");
			return;
		}
		if (!upwd.equals(user.getUpwd())) {
			response2.getWriter().write("用户密码错误");
			return;
		}
		response2.getWriter().write("<h1>恭喜你登录成功</h1>");

	}

	private User findUser(String uname) {
		// TODO Auto-generated method stub
		User user = null;
		Connection connection = null;
		PreparedStatement pStatement = null;
		ResultSet resultSet = null;
		try {
			connection = DBUtil.getConnection();
			String sql = "select * from fk_user where uname=?";
			pStatement = connection.prepareStatement(sql);
			pStatement.setString(1, uname);
			resultSet = pStatement.executeQuery();
			while (resultSet.next()) {
				user = new User();
				user.setUname(resultSet.getString("uname"));
				user.setUno(resultSet.getInt("uno"));
				user.setUpwd(resultSet.getString("upwd"));
				user.setUinfo(resultSet.getString("uinfo"));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			DBUtil.close1(connection, pStatement, resultSet);
		}

		return user;
	}

}

User内代码

package xyz.xkun.User;

public class User {
	private Integer uno;
	private String uname;
	private String upwd;
	private String uinfo;

	public Integer getUno() {
		return uno;
	}

	public void setUno(Integer uno) {
		this.uno = uno;
	}

	public String getUname() {
		return uname;
	}

	public void setUname(String uname) {
		this.uname = uname;
	}

	public String getUpwd() {
		return upwd;
	}

	public void setUpwd(String upwd) {
		this.upwd = upwd;
	}

	public String getUinfo() {
		return uinfo;
	}

	public void setUinfo(String uinfo) {
		this.uinfo = uinfo;
	}
}

DBUtil内代码

package xyz.xkun.Util;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Properties;

public class DBUtil {

	public static Connection getConnection() {
		Connection connection = null;
		try {
			InputStream inputStream = DBUtil.class.getClassLoader().getResourceAsStream("db.properties");
			Properties properties = new Properties();
			properties.load(inputStream);

			String jdbcName = properties.getProperty("jdbcName");
			String dbName = properties.getProperty("dbName");
			String dbPwd = properties.getProperty("dbpwd");
			String dbUrl = properties.getProperty("dburl");

			Class.forName(jdbcName);

			connection = DriverManager.getConnection(dbUrl, dbName, dbPwd);

		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}

		return connection;
	}

	public static void close1(Connection connection, PreparedStatement pStatement, ResultSet resultSet) {
		try {
			if (resultSet != null) {
				resultSet.close();
			}
			if (pStatement != null) {
				pStatement.close();
			}
			if (connection != null) {
				connection.close();
			}

		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	}
}

db.properties内代码!!!(这是一个普通文件,不是.class文件)!!!

jdbcName=com.mysql.jdbc.Driver
dbName=用户名
dbpwd=用户密码
dburl=jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=UTF-8

xml配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>ZuoyeD2</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
  	<servlet-name>AServlet</servlet-name>
  	<servlet-class>xyz.xkun.testA.A</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>AServlet</servlet-name>
  	<url-pattern>/goA</url-pattern>
  </servlet-mapping>
 
  <servlet>
  	<servlet-name>BServlet</servlet-name>
  	<servlet-class>xyz.xkun.testB.B</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>BServlet</servlet-name>
  	<url-pattern>/goB</url-pattern>
  </servlet-mapping>
  
</web-app>

注意需要引入mysql的jar包在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值