Javaweb-初识(Tomcat服务部署创建Javaweb项目Servlet Post请求案例)
Posted Ocean:)
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javaweb-初识(Tomcat服务部署创建Javaweb项目Servlet Post请求案例)相关的知识,希望对你有一定的参考价值。
文章目录
Tomcat
Tomcat服务器概述
Apache组织,Sun公司以及个人开发者一起维护的符合一部分JavaEE开发规范的开源轻量级服务器软件,对于用户使用比较友好,完全兼容JSP和Servlet,同时可以响应html页面
JBoss、WebLogic完全符合JavaEE规范的服务器,但是是收费的
web 服务器软件是提供 web 服务的工具
安装
官网地址:http://tomcat.apache.org/
选择合适的版本下载zip包即可
- 不推荐直接下载windows安装程序
- 安装路径不能存在中文和特殊字符
将下载的文件解压到安装目录
tomcat目录结构
bin
二进制目录,对应tomcat服务器的可执行文件,对应.sh .bat文件
.sh Linux系统中的shell脚本,.bat是Windows系统中使用的比处理文件
启动Tomcat使用startup.bat,关闭使用shutdown.bat
conf
配置文件目录
server.xml
配置整个服务器信息,可以用于修改端口号、添加虚拟主机
web.xml
存储当前Tomcat服务器支持的数据类型、文档类型、MIME类型
tomcatusers.xml
Tomcat用户,在tomcat管理页面中,Manager tomcat登陆需要用户名和密码
lib
Tomcat服务所需的库文件,都是jar包形式
servlet-api.jar Servlet支持的核心Jar
logs
日志文件目录,tomcat运行过程中的错误,记录当前到log日志中
tmep
临时文件目录,tomcat关闭后自动删除
webapps
存放web项目路径
work
web项目运行过程中的一些资源的保存目录,jsp文件运行过程中需要同故宫tomcat解析,解析完成后生成一个对应的servlet程序,保存到wordk目录中
LICENSE
许可证
NOTICE
说明文件
启动tomcat方式:找到bin目录下的start.bat,双击启动
如果启动失败按以下操作检查
-
检查JDK环境变量
JAVA_HOME CLASS_PATH Path
-
检查是否在环境变量中存在一个Catelina目录,删除
-
检查路径是否有中文
-
检查是否已经打开了tomcat(提示8080被占用)
-
如果都检查完毕还是不能启动重启下电脑
服务启动后访问:http://127.0.0.1:8080/,出现此页面,代表启动成功
idea配置tomcat
第一种方法:idea中新建项目时配置
第二种方法:直接配置
再打开的页面点击左上角加号选择tomcat
configure配置文件目录即可
创建Javaweb项目
idea创建项目
不同的idea版本稍有差异
在WEB-INF目录下新建两个文件夹 classes、lib
快捷方法:
WEB-INF文件夹上右击,选择open in,选择底部terminal输入命令
mkdir classes lib
接下来去修改项目依赖
选择右上角file-project sturcture,按如图所示进行设置
勾选Use module compile output path
将Output path和Test output path都改为之前创建的classes目录
Dependencies面板,点击加号,选择 JARs or directiories,选择创建的lib目录
配置打包方式Artifacts:点击 Artifacts选项卡,IDEA会为该项目自动创建一个名为“JavaWeb:war exploded”的打包方式,表示 打包成war包,并且是文件展开性的,输出路径为当前项目下的 out 文件夹,保持默认即可。另外勾选下“Build on make”,表示编译的时候就打包部署,勾选“Show content of elements”,表示显示详细的内容列表
配置tomcat
目录结构
idea创建的Javaweb项目目录结构
├─.idea
│ └─artifacts
├─src
└─web
└─WEB-INF
├─classes
└─lib
└─web.xml
src路径
Java源代码,servlet,dao,service
web路径
web项目路径
context内容静态资源(HTML、js、css、img、video)
WEB-INF:该路径中的内容不允许通过url访问,收到tomcat限制(一般通过web.xml文件限制或者注解限制)
classes目录:Java源代码对应的.class字节码文件,可以在tomcat服务器运行
lib目录:当前web项目运行所需要的jar包,第三方库,需要交给tomcat服务器
web.xml当前web项目的配置文件,支持所有的servlet版本
配置servlet、filter、listener,web项目初始化文件
Servlet
在 Javaweb 中 HTTP 协议对应的一个类 HttpServlet – 符合 HTTP 协议的一个 Server applet 程序要求,也是重要组件之一
在JavaEE平台上,处理TCP连接,解析HTTP协议这些底层工作统统扔给现成的Web服务器去做,我们只需要把自己的应用程序跑在Web服务器上。为了实现这一目的,JavaEE提供了Servlet API,我们使用Servlet API编写自己的Servlet来处理HTTP请求,Web服务器实现Servlet API接口,实现底层功能:
post请求案例
接收到请求,返回一段文字
在src目录下新建文件夹,里边放java代码,也就是后端逻辑,接收到请求,返回一段文字
package cn.ocean888.demo1;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/TestPost")
// WebServlet注解表示这是一个Servlet,并映射到地址/:
public class TestPost extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 设置响应类型,可选设置
resp.setContentType("text/html");
// 获取输出流,写入响应
resp.getWriter().append("welcome to servlet");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
testpost.html,一个简单的表单
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>TEST</title>
</head>
<body>
<form action="TestPost" method="post">
<span>name:</span><input type="text">
<input type="submit" value="提交">
</form>
</body>
</html>
写好代码之后,在idea右上角的三角,运行tomcat服务器,启动成功访问url
http://localhost:8080/JavaRCE_war_exploded/testpost.html
这个url在tomcat配置里可以看到
效果如下
一个Servlet总是继承自
HttpServlet
,然后覆写doGet()
或doPost()
方法。注意到doGet()
方法传入了HttpServletRequest
和HttpServletResponse
两个对象,分别代表HTTP请求和响应。我们使用Servlet API时,并不直接与底层TCP交互,也不需要解析HTTP协议,因为HttpServletRequest
和HttpServletResponse
就已经封装好了请求和响应。以发送响应为例,我们只需要设置正确的响应类型,然后获取PrintWriter
,写入响应即可
问题解决
如果导入HttpServlet无法导入,原因:IntelliJ IDEA 没有导入 servlet-api.jar 这个架包,需要你手动导入支持,按以下步骤操作
idea->file目录->project structure
找到 Tomcat 安装路径 下的 lib 文件夹中的 Servlet.api 这个文件,添加这个文件
HTTP协议和HTTPServlet关系
HTTPServlet 是 Java 中符合 HTTP 协议的 Servlet 程序基类,其中
- HTTPServletRequest 对应 HTTP 的请求行
- HTTPServletResponse 对应 HTTP 的响应行
以上是关于Javaweb-初识(Tomcat服务部署创建Javaweb项目Servlet Post请求案例)的主要内容,如果未能解决你的问题,请参考以下文章
云服务器部署javaweb项目tomcat启动后页面无法正常跳转