数据连接器JDBC在Servlet开发中的使用
程序员文章站
2022-06-30 21:04:13
ServletServlet是使用应用程序设计接口(API)相关类和方法的Java程序,是位于web服务器的服务器端的Java应用程序。HTML通过Servlet操作数据库1.先熟悉一下Servlet的使用首先IDEA建立一个工程…结合下面几条注意事项,按照https://www.cnblogs.com/liusong-funtime/p/9144275.html操作即可如果在选择Tomcat-> Local右边没有出现配置信息,问题可能是你的IDEA有汉化包,需要将汉化包去掉,汉化包文...
Servlet
Servlet是使用应用程序设计接口(API)相关类和方法的Java程序,是位于web服务器的服务器端的Java应用程序。
HTML通过Servlet操作数据库
1.先熟悉一下Servlet的使用
首先IDEA建立一个工程…
结合下面几条注意事项,按照https://www.cnblogs.com/liusong-funtime/p/9144275.html操作即可
- 如果在选择Tomcat-> Local右边没有出现配置信息,问题可能是你的IDEA有汉化包,需要将汉化包去掉,汉化包文件在IDEA安装路径下/lib/resource-cn.jar,删除重启IDEA即可。
- 如果需要编译Servlet的java类前包含包,如com.cn.userServlet,则web.xml配置文件的< servlet-class >里需要加上包com.cn.userServlet.AServlet
- 运行如果出现端口被占用,则可以更改Tomcat的配置,Edit configuration–>将HTTP port改为任意端口,如8078,再运行
- 在浏览器打开localhost:8080/web/Hello,其中8080为HTTP port设置的端口,/web为参考博客的第四步中的Application context里的内容,/Hello是web.xml中< url-pattern>里的内容,都可以自己设定。
- 如果在浏览器打开localhost:8080/web,得到的是index.jsp文件的内容。
可以添加一个Servlet例子:
package com.cn.userServlet;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class UserServlet extends HttpServlet {
public void destroy(){
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
String username = request.getParameter("usename");
if(username == null || username == ""){
username="No User";
}
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" 这里是Servlet所在的包和类: ");
out.print(this.getClass());
out.println(this.getClass());
out.println("<br>");
out.println("使用了doPost方法");
out.println("<br>");
out.println("用户名为:"+username);
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
response.setContentType("text/html,charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>a Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.println(" <h1>This is my first Servlet</h1>");
out.println(" <br>");
out.print(" This is");
out.print(this.getClass());
out.println(",using the POST method");
out.println(" </BODY>");
out.println("<HTML>");
out.flush();
out.close();
}
public void init()
throws ServletException{
}
}
因为前面有包“com.cn.userServlet”,所以对于web.xml的配置文件进行修改,需在< servlet-class >添加com.cn.userServlet。
2.向数据库插入数据
在web(记住是web目录)下新建一个hello.html文件,
添加以下内容:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>
add.html
</title>
<meta http-equiv="content-type" content="text/html;charset=gb2312">
</head>
<body>
<form action="AddServlet"method="post">
<lable>请输入部门信息:</lable><br><br>
<lable>部门号:</lable><br>
<input type="text" name="id"><br>
<label>部门名:</label><br>
<input type="text" name="name"><br>
<label>地址:</label><br>
<input type="text" name="address"><br>
<label>部门人数:</label><br>
<input type="text" name="number"><br><br>
<input type="submit" value="提交">
</form>
</body>
</html>
效果图展示(webproject_war_exploded是我Application context里设定的):
在src添加新文件AddServlet.java
package com.cn.add;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class AddServlet extends HttpServlet {
public void destroy(){
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
response.setContentType("text/html;charset=gb2312");
PrintWriter out = response.getWriter();
this.doPost(request,response);
out.flush();
out.close();
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
System.out.println("到了Servlet!!!");
response.setContentType("text/html;charset=gb2312");
request.setCharacterEncoding("gb2312");
PrintWriter out=response.getWriter();
String id=request.getParameter("id");
String name=request.getParameter("name");
String address = request.getParameter("address");
int num = Integer.parseInt(request.getParameter("number"));
Connection conn = null;
PreparedStatement pstmt = null;
try{
Class.forName("com.mysql.cj.jdbc.Driver");
System.out.println("创建驱动成功!");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC","root","********");
System.out.println("创建数据库成功!");
String sql = "INSERT INTO bank(id,name,address,num)VALUES(?,?,?,?)";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,id);
pstmt.setString(2,name);
pstmt.setString(3,address);
pstmt.setInt(4,num);
int result = pstmt.executeUpdate();
if(result==1){
out.print("插入数据成功!");
}else
{
out.print("插入数据失败!请重新插入");
}
}catch(Exception e){
out.println("无法连接数据库!请检查数据库连接是否正确!");
}
out.flush();
out.close();
}
public void init()throws ServletException{
}
}
配置依赖:https://www.cnblogs.com/Ran-Chen/p/9646187.html(到使用JDBC操作数据库前为止)
同时更改web.xml配置文件改为与AddServlet相关的,因为你需要运行的是这个文件,运行,在浏览器输入localhost:8080/web/hello.html,填完信息后提交,会转到localhost:8080/web/AddServlet,出现成功就说明插入数据成功了。
本文地址:https://blog.csdn.net/Quilan/article/details/108857225
推荐阅读
-
在iOS开发的Quartz2D使用中实现图片剪切和截屏功能
-
在 Angular-cli 中使用 simple-mock 实现前端开发 API Mock 接口数据模拟功能的方法
-
在html5中,使用localStorage存储的数据放在哪个文件里?
-
详解iOS应用开发中Core Data数据存储的使用
-
在Word2010中对使用分隔符分割的数据排序
-
使用MSScriptControl 在 C# 中读取json数据的方法
-
android开发中如何使用jdbc连接数据库
-
微信小程序在开发工具预览的圆角模糊效果在ios手机中不能使用
-
在react中,使用axios获取后台服务器数据的方法
-
在Word2007中对使用分隔符分割的数据排序