JavaWeb: IntelliJ IDEA集成开发环境下开发第一个servlet程序
第一步:创建工程
New Project:先创建一个空工程(Empty Projcet),起名为:javaweb。
第二步:新建模块
File –> new –> Module..
这里新建的是一个普通的JavaSE模块,这个Module自动会被放在javaweb的project下面。起名为:servlet01。
第三步:让Module变成JavaEE的模块
让Module变成webapp的模块。符合webapp规范。符合Servlet规范的Module。
- 在Module上点击右键:Add Framework Support…(添加框架支持)
- 在弹出的窗口中,选择Web Application(选择的是webapp的支持)
- 选择了这个webapp的支持之后,IDEA会自动给你生成一个符合Servlet规范的webpp目录结构。
重点,需要注意的:在IDEA工具中根据Web Application模板生成的目录中有一个web目录,这个目录就代表webapp的根
第四步:(非必须):根据Web Application生成的资源中有index.jsp文件,这里我选择删除这个index.jsp文件。
第五步:编写Servlet(StudentServlet)
class StudentServlet implements Servlet
Servlet.class
文件没有,将CATALINA_HOME/lib/servlet-api.jar
和jsp-api.jar
添加到classpath
当中(这里的classpath
说的是IDEA的classpath
)
File –> Project Structrue –> Modules –> + 加号 –> Add JARS....
实现jakarta.servlet.Servlet
接口中的5个方法。
第六步:在Servlet当中的service方法中编写业务代码(连接数据库)
实现StudentServlet类:
package com.lhr.javaweb.servlet;
import jakarta.servlet.Servlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.ServletConfig;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
public class StudentServlet implements Servlet{
public void init(ServletConfig config) throws ServletException{
}
public void service(ServletRequest request,ServletResponse response)
throws ServletException , IOException{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
// 编写JDBC代码,连接数据库,查询所有学生信息。
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try{
// 注册驱动 (com.mysql.jdbc.Driver,这个已过时。)
// 新版本中建议使用:com.mysql.cj.jdbc.Driver驱动。
Class.forName("com.mysql.cj.jdbc.Driver");
// 获取连接
String url = "jdbc:mysql://localhost:3306/student";
String user = "root";
String password = "luhaoran2001";
conn = DriverManager.getConnection(url,user,password);
// 获取预编译的数据库操作对象
String sql = "select no,name from t_student";
ps = conn.prepareStatement(sql);
// 执行SQL
rs = ps.executeQuery();
// 处理查询结果集
while(rs.next()){
String no = rs.getString("no");
String name = rs.getString("name");
//System.out.println(no + "," + name);
out.print(no + "," + name + "<br>");
}
}catch(Exception e){
e.printStackTrace();
}finally{
// 释放资源
if(rs != null){
try{
rs.close();
}catch(Exception e){
e.printStackTrace();
}
}
if(ps != null){
try{
ps.close();
}catch(Exception e){
e.printStackTrace();
}
}
if(conn != null){
try{
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
}
public void destroy(){
}
public String getServletInfo(){
return "";
}
public ServletConfig getServletConfig(){
return null;
}
}
这里再补充下mysql数据库的相关配置:
建立student数据库,建立t_student表,插入四条数据。
查看表的内容:
第七步:在WEB-INF目录下新建了一个子目录:lib,并且将连接数据库的驱动jar包放到lib目录下。
在web.xml文件中完成StudentServlet类的注册。(请求路径和Servlet之间对应起来)
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>studentServlet</servlet-name>
<servlet-class>com.bjpowernode.javaweb.servlet.StudentServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>studentServlet</servlet-name>
<url-pattern>/servlet/student</url-pattern>
</servlet-mapping>
</web-app>
第九步:给一个html页面,在HTML页面中编写一个超链接,用户点击这个超链接,发送请求,Tomcat执行后台的StudentServlet。
student.html
这个文件不能放到WEB-INF目录里面,只能放到WEB-INF目录外面。
student.html
文件的内容:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>student page</title>
</head>
<body>
<!--这里的项目名是 /xmm ,无法动态获取,先写死-->
<a href="/xmm/servlet/student">student list</a>
</body>
</html>
第十步:让IDEA工具去关联Tomcat服务器。关联的过程当中将webapp部署到Tomcat服务器当中。
- IDEA工具右上角,绿色小锤子右边有一个:Add Configuration
- 左上角加号,点击Tomcat Server –> local
- 在弹出的界面中设置服务器Server的参数(基本上不用动)
- 在当前窗口中有一个Deployment(点击这个用来部署webapp),继续点击加号,部署即可。
- 修改 Application context为:/xmm
第十一步:启动Tomcat服务器
在右上角有绿色的箭头,或者绿色的小虫子,点击这个绿色的小虫子,可以采用debug的模式启动Tomcat服务器。
注意:
此时运行发生了报错是apache-Tomcat在mac中权限的问题,解决的方法,找到Tomcat的目录下(终端下):
# sudo chmod -R755 apache-tomcat-10.0.12
启动界面如下:
第十二步:打开浏览器,在浏览器地址栏上输入:http://localhost:8080/xmm/student.html
演示结果如下:
恭喜你完成了第一个servlet程序。