使用集成开发环境实现web开发
集成开发工具很多,其中目前使用比较多的是IntelliJ IDEA和Eclipse
- IntelliJ IDEA(居多): JetBrain公司开发的收费软件, IDEA在提示功能方面要强于Eclipse使用起来更加智能更好用
- Eclipse(较少):Eclipse是IBM团队开发的, Eclipse寓意是“日食”(日是SUN公司), 但是2009年的时候SUN公司被Oracle公司并购了
使用IDEA实现WEB开发
第一步: New Project(如创建一个Empty Project空工程) —> New Module(在该空工程下新建一个普通的Java模块/基于Maven的Java Enterprise模块)
- 这个Empty Project起名为javaweb, Module起名servlet01自动会被放在javaweb工程的下面

第二步: 如果新建的是普通的Java模块需要变成符合webapp规范的JavaEE模块
- 在Module上右键点击Add Framework Support(添加框架支持), 在弹出的窗口中选择Web Application默认是4.0版本

第三步: IDEA根据Web Application模板自动生成一个符合Servlet规范的web目录, 这个web目录就代表webapps目录中的一个项目
- Web Application模板生成的index.jsp资源文件可以选择删除
  
第四步:将Servlet.class文件所在的servlet-api.jar以及jsp-api.jar添加到IDEA的classpath当中, 编写XxxServlet实现jakarta.servlet.Servlet接口中的5个方法
- File–>Project Structrue(设置工程结构)–>Modules–>Dependencies --> 点击 " + "添加依赖 --> Add JARS(添加单独的jar包)/ Add Libraries (添加整个库的jar包)
- Modules SDK 换成对应的jdk版本 , 在File -> settings -> Java compile设置jdk版本
  
第五步:在Servlet当中的service方法中编写业务代码(我们这里实现连接数据库的功能)
- 由于连接数据库需要第三方的jar包 , 此时需要在WEB-INF目录下新建一个lib子目录用来存放连接数据库驱动所在的jar包
//这些类都不是JDK中的jar包,需要通过classpath环境变量告诉虚拟机从哪加载这些类 
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;
public class StudentServlet implements Servlet{
    //实现jakarta.servlet.Servlet接口中的5个方法
	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{
			// 注册驱动 
			Class.forName("com.mysql.cj.jdbc.Driver");
			// 获取连接
			String url = "jdbc:mysql://localhost:3306/bjpowernode";
			String user = "root";
			String password = "root";
			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");
				//将查询到的信息输出到浏览器
				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;
	}
}
第六步:在WEB-INF目录下的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>
第七步:在WEB-INF目录外面准备一个student.html页面,用户点击页面中的超链接时发送请求,Tomcat服务器接受请求执行后台的Servlet程序
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>student page</title>
</head>
<body>
    <!--这里的项目名是 "/xmm" 先写死,以后学了JSP可以动态获取-->
    <a href="/xmm/servlet/student">student list</a>
</body>
</html>
第八步:让IDEA工具关联Tomcat服务器 , 关联的过程当中IDEA会将开发的web项目部署到Tomcat服务器的webapps目录下
- 点击IDEA工具右上角绿色小锤子的右边有一个Add Configuration选项 , 在弹出的窗口中点击左上角 " + " 添加Tomcat Server到local(本地)
  
第九步: 配置服务器的Server相关参数, URL, JRE的版本(与jdk版本对应) ,服务器的名字/安装包/启动服务器时的行为/代码改动时的行为
- IDEA中改完Servelt的源代码后默认需重启服务器 , 如果不想重启服务器需要配置更新字节码文件时自动重启Tomcat服务器
  
第十步: 配置服务器的Deployment部署的相关参数, 点击 " + " 添加Artifact指定要部署的web项目
- Application context参数指定web应用的上下文路径

第十一步:使用右上角绿色的小虫子以debug的方式启动Tomcat服务器方便打断点调试
第十二步:打开浏览器在地址栏上输入http://localhost:8080/xmm/student.html, 访问Tomcat服务器上的xmm项目下的资源查看页面效果




















