一个简单的servlet+Jsp+MySQL/oracle程序
1. 创建项目
使用 IDEA 创建一个 Maven 项目.
1.1、File -> New Project
Name:javaservlet4
Location:选择要存放的路径
Language:Java
Build system:Maven
点击Create按钮
1.2、Pom.xml配置
<dependencies>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- mysql依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.48</version>
</dependency>
</dependencies>
2、创建webapp目录
2.1、创建目录webapp
在 main 目录下, 和 java 目录并列, 创建一个 webapp 目录
- src 表示源代码所在的目录。
- main/java 表示源代码的根目录. 后续创建 .java 文件就放到这个目录中。
- main/resources 表示项目的一些资源文件所在的目录。
- webapp 目录就是未来部署到 Tomcat 中的一个重要的目录. 当前我们可以往 webapp 中放一些静态资源, 比如 html , css 等。
在这个目录中还有一个重要的文件 web.xml. Tomcat 找到这个文件才能正确处理 webapp 中的动态资源
2.2、创建WEB-INF 目录
在 webapp 目录内部创建一个 WEB-INF 目录,可放一些lib和web.xml
web.xml
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
2.3、创建index.jsp
在webapp目录下创建一个index.jsp文件
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="ISO-8859-1"%>
<%@page import="webhandle.servletDemo"%>
<%
request.setCharacterEncoding("utf-8");
String selSql = request.getParameter("selsql");
String selectResult = "";
if (selSql != null && !selSql.equals("")) {
System.out.println(selSql);
servletDemo demo = new servletDemo();
selectResult = demo.execSelect(selSql);
}
String othSql = request.getParameter("othsql");
String othResult = "";
if (othSql != null && !othSql.equals("")) {
System.out.println(othSql);
servletDemo demo = new servletDemo();
int result = demo.execOther(othSql);
othResult = "exec:" + result;
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<form action="index.jsp" method="post">
<table>
<tr>
<td>
select: <input type="text" size=50 name="selsql" />
<input type="submit" value="execSelect" />
</td>
<td>
other: <input type="text" size=50 name="othsql" />
<input type="submit" value="execOther" />
result:<input type="text" size=10 name="othresult" value="<%=othResult%>" />
</td>
</tr>
<td>
result: <textarea rows="10" cols="50"><%=selectResult%></textarea>
</td>
<tr>
</tr>
</table>
</form>
<body>
</body>
</html>
3、java 目录下创建一个类和读取数据库配置文件
3.1、servletDemo.java
package webhandle;
import javax.servlet.annotation.WebServlet;
import java.io.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;
/**
* Description :
*
* @author : HMF
* Date : Created in 23:14 2023/4/27
* @version :
*/
@WebServlet("/servletDemo")
public class servletDemo {
Connection conn = null;
public servletDemo() {
Properties props = new Properties();
InputStream is = null;
String jdbcDriver = "";
String jdbCurl = "";
try {
String filePath = servletDemo.class.getClassLoader().getResource("app.properties").getPath();
System.out.println(filePath);
is = new FileInputStream(filePath);
InputStreamReader reader = new InputStreamReader(is, "UTF-8");
props.load(reader);
jdbcDriver = props.getProperty("jdbcdriver");
jdbCurl = props.getProperty("jdbcurl");
System.out.println("jdbcDriver:" + jdbcDriver + ", jdbCurl:" + jdbCurl);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
try {
if (is != null) {
is.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
try {
Class.forName(jdbcDriver);
conn = DriverManager.getConnection(jdbCurl);
} catch (Exception e) {
e.printStackTrace();
}
}
public int execOther(String sql)
{
int re=0;
try{
Statement stmt=conn.createStatement();
boolean result=stmt.execute(sql);
re=1;
System.out.println("+++++sql:"+sql);
stmt.close();
conn.close();
}catch (Exception e){
e.printStackTrace();
}
return re;
}
public String execSelect(String sql)
{
String result="";
try{
Statement statement=conn.createStatement();
ResultSet rs=statement.executeQuery(sql);
int columnCount=rs.getMetaData().getColumnCount();
System.out.println("+++++sql:"+sql);
while (rs.next()){
for(int i=0;i<columnCount;i++){
result +="\t"+rs.getString(i+1);
}
System.out.println(result);
}
rs.close();
statement.close();
conn.close();
}catch (Exception e){
e.printStackTrace();
}
return result;
}
}
3.2、数据库的配置文件app.properties
jdbcdriver=com.mysql.jdbc.Driver
jdbcurl=jdbc:mysql://10.1.1.143:3306/demo_hu?user=xxx&password=xxx&useSSL=false&useUnicode=yes&characterEncoding=UTF-8
#jdbcdriver=oracle.jdbc.driver.OracleDriver
#jdbcurl=jdbc:oracle:thin:xxx/xxx@//10.1.1.38:1521/pdb
4、打包成war包
4.1、Pom.xml引用
<packaging>war</packaging>
<build>
<finalName>servletDemo</finalName>
</build>
4.2、Maven点击package
5、执行
5.1、把war包放入Tomcat运行并访问
把war放入tomcat的webapps目录中,启动tomcat,访问
数据库操作:使用mysql或oracle时,把mysql驱动或oracle驱动放入tomcat的lib中
支持多种数据库,1、驱动放入lib中 2、数据库连接url写对
5.2、在Idea中运行
参考:一个简单的servlet应用 步骤6.2
6、执行结果
6.1、插入
INSERT INTO `users` VALUES (10, '胡Test', 'www5@163.com', 1, 'M', '460025198109101501', '13581696800', 'SYP618183458', '军字第00111209号', '北京市朝阳区立水桥北');
6.2、查询