JavaWeb开发——环境配置
开发环境:
- IDEA2021.1.2 IntelliJ IDEA: The Capable & Ergonomic Java IDE by JetBrains
- tomcat10 Apache Tomcat® - Welcome!
- jdk-17.0.3.1 Java Downloads | Oracle
jdk和tomcat环境变量配置
打开环境变量编辑窗口,设置以下系统变量,没有的变量名点击新建,已有的变量名点击编辑。
- 新建变量CATALINA_HOME,值设置为解压缩后tomcat的根目录,如W:\dev\apache-tomcat-10.0.22
- 新建变量JAVA_HOME , 值设置为解压缩后jdk的根目录,如W:\dev\jdk-17.0.3.1
- 新建变量CLASSPATH,值设置为 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; %CATALINA_HOME%\lib\servlet-api.jar;
- 编辑Path变量,依次添加
- %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
- %CATALINA_HOME%\bin
IDEA创建javaweb项目并部署配置
第一步:导航栏 File —> New —> Project 右侧找到Empty Project,点击确定
第二步:导航栏File-—> New —> Module 选择java,设置SDK,点击next,自行设置项目名
第三步:如图,在项目上右键,选择Add FrameWork Support,选中Web Application
第四步:导航栏File --> Project Structure --> Module,把jsp-api和servlet-api的jar包放进去。这些jar包可以在下载的tomcat的lib文件夹下有,不需要额外下载。
第五步:在WEB-INF下新建文件夹 lib,将mysql的驱动jar包放进去。项目结构如图:
第六步:右上角 Addconfiguration —> ’+‘ —> tomcat -----> local 按照下图配置
下拉,修改Application context。并且记住
最后写代码、写配置文件即可运行测试。index.jsp可以删掉。
Servlet规范(目录结构)
webapproot
|-----WEB-INF
|-----classes # 字节码文件
|-----lib # 第三方jar包
|-----web.xml # 配置文件
|-----html
|-----css
|-----javascript
|-----image
...
运行过程
假设有三个文件分别为StudentServlet.java(新建) index.html(新建,必须在WEB-INF目录外) web.xml(已有)。三个文件内容分别如下(注意注释)
/*StudentServlet.java*/
package lzq.javaweb.servlet;
import jakarta.servlet.*;
import java.io.IOException;
public class StudentServlet implements Servlet { // 重写Servlet接口里的五个方法
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
// 这个方法会在访问到和StudentServlet类绑定的url时调用
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
<!--web.xml-->
<?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">
<!--绑定类和url-->
<servlet>
<!--上下servlet-name里的值相同,表示其class和url是绑定在一起的-->
<servlet-name>studentName</servlet-name>
<!--servlet-class里必须是完整的包名加类名-->
<servlet-class>lzq.javaweb.servlet.StudentServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>studentName</servlet-name>
<!--url可以自定义,此处的url会用在html页面中-->
<url-pattern>/servlet/student</url-pattern>
</servlet-mapping>
<!--绑定类和url-->
</web-app>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!--此时项目名是xmm,即设置的Application context-->
<a href="/xmm/servlet/student">student servlet</a>
</body>
</html>
点击运行后,会默认打开index.html界面,此时会有一个跳转链接地址,点击链接后,tomcat会解析这个链接,得到/servlet/student,然后去web.xml文件里面查找,找到对应的lzq.javaweb.servlet.StudentServlet类,然后执行里面的service方法。