基础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包