1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Javaweb-初识(Tomcat服务部署 创建Javaweb项目 Servlet Post请求案例)

Javaweb-初识(Tomcat服务部署 创建Javaweb项目 Servlet Post请求案例)

时间:2020-04-20 16:11:48

相关推荐

Javaweb-初识(Tomcat服务部署 创建Javaweb项目 Servlet Post请求案例)

文章目录

TomcatTomcat服务器概述安装idea配置tomcat创建Javaweb项目idea创建项目目录结构Servletpost请求案例问题解决HTTP协议和HTTPServlet关系

Tomcat

Tomcat服务器概述

Apache组织,Sun公司以及个人开发者一起维护的符合一部分JavaEE开发规范的开源轻量级服务器软件,对于用户使用比较友好,完全兼容JSP和Servlet,同时可以响应HTML页面

JBoss、WebLogic完全符合JavaEE规范的服务器,但是是收费的

web 服务器软件是提供 web 服务的工具

安装

官网地址:/

选择合适的版本下载zip包即可

不推荐直接下载windows安装程序安装路径不能存在中文和特殊字符

将下载的文件解压到安装目录

tomcat目录结构

bin二进制目录,对应tomcat服务器的可执行文件,对应.sh .bat文件.sh Linux系统中的shell脚本,.bat是Windows系统中使用的比处理文件启动Tomcat使用startup.bat,关闭使用shutdown.batconf配置文件目录server.xml配置整个服务器信息,可以用于修改端口号、添加虚拟主机web.xml存储当前Tomcat服务器支持的数据类型、文档类型、MIME类型tomcatusers.xmlTomcat用户,在tomcat管理页面中,Manager tomcat登陆需要用户名和密码libTomcat服务所需的库文件,都是jar包形式servlet-api.jar Servlet支持的核心Jarlogs日志文件目录,tomcat运行过程中的错误,记录当前到log日志中tmep临时文件目录,tomcat关闭后自动删除webapps存放web项目路径workweb项目运行过程中的一些资源的保存目录,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.xmlsrc路径Java源代码,servlet,dao,serviceweb路径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 {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 设置响应类型,可选设置resp.setContentType("text/html");// 获取输出流,写入响应resp.getWriter().append("welcome to servlet");}@Overrideprotected 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()方法传入了HttpServletRequestHttpServletResponse两个对象,分别代表HTTP请求和响应。我们使用Servlet API时,并不直接与底层TCP交互,也不需要解析HTTP协议,因为HttpServletRequestHttpServletResponse就已经封装好了请求和响应。以发送响应为例,我们只需要设置正确的响应类型,然后获取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 的响应行

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。