web服务器是一个软件,对HTTP协议的操作进行封装,使程序员不必直接对协议进行操作,更加便捷
也就是可以将web项目部署到服务器中,对外提供网上浏览服务
Tomcat
是一个开源免费的,支持servlet /jsp少量的JavaEE规范
javaee(企业版) 里面包含很多规范如,jdbc,xml,jsp等等
tomcat官网
1.1 tomcat的基本使用
安装 直接将压缩包解压即可
卸载 直接删除对应的安装包
启动 apache-tomcat-8.5.68\bin\startup.bat 双击启动
image.png
关闭的话用ctrl+c 正常关闭
1.2 tomcat的配置
- 端口号被占用的情况,使用win+r命令打开命令窗口输入cmd,在黑窗口命令输入
netstat -ano | findstr :8080
,最后一列是pid ,记住这个pid去任务管理器关闭掉次端口号 - 更改tomcat端口号,在conf目录下的
server.xml
配置文件下,找到
<Connector port="65534" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
更改端口号,1-65535
- 控制台乱码问题,因为tomcat是采用utf-8的编码格式,而windows下的命令窗口是GBK的编码格式.
1.3 tomcat部署项目
将项目放在webapps目录下即可完成部署
javaweb项目一般会被打包成war包,然后将war包放在webapps目录下,tomcat会自动解压该文件
webapps IDEA部署Maven Web项目
IEDA创建Maven Web项目的两种方式
-
1 使用IDEA模板来进行创建
image.png
最后需要补全一下缺失的目录 java和resources
-
2 不使用模板创建
image.png
1.4在IDEA中使用tomcat
正常情况我们在tomcat上部署项目需要将打包好的war包放在tomcat的webapps这个目录下进行部署,但是每次这样都是一个非常麻烦的过程
所以我们将本地的tomcat集成到idea中,在idea中进行部署
第三步
第四步
启动 运行
- 还有第二种方法使用tomcat-maven插件的方式
第一步
第二步
image.png
二,Servlet
是java提供的一门动态web资源开发的技术
在服务器中分为两类,一种为静态资源(html css js),另一种为动态资源(jsp)
静态资源不管哪个用户访问他展示的始终如一,不会变
动态资源不同用户访问或参数不一致,看到的效果不一样
就像管理员登录我们/adminlogin 登录显示管理员页面
普通用户/user登录我们显示普通用户页面
Servlet是javaEE的一种规范(接口),奖励需要定义Servlet类来实现Servlet接口,并有服务器来运行Servlet
例 image.png然后启动tomcat,向浏览器输入url访问该路径,http://localhost:65534/tomcatDemo1/demo1
demo1就是servlet配置的访问路径 执行流程
2.1 Servlet生命周期
是指一个对象从创建到销毁的整个过程
生命周期
1 .init 加载和实例化
/**
*1.初始化的方法
* 调用次数:servlet被第一次访问时调用,只调用一次
* 可以通过LoadOnStartup改变调用时机,默认-1 是指第一次被访问的时候调用
* @param servletConfig
* @throws ServletException
*/
public void init(ServletConfig servletConfig) throws ServletException {
//这里只会被执行一次
}
0或正整数是服务器启动时创建servlet对象,数字小优先级高
@WebServlet(urlPatterns="/demo1",LoadOnStartup = 1)
- service 提供服务
/**
* 调用时机和次数 每一次servlet被访问时,调用
* @param servletRequest
* @param servletResponse
* @throws ServletException
* @throws IOException
*/
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("欢迎来到servlet");
}
3.destroy 销毁
/**
* 调用时机和次数 在servlet被销毁(内存释放或关闭)的时候被调用,只会被调用一次
*/
public void destroy() {
System.out.println("destroy");
}
image.png
mvn tomcat7:run 启动命令
在这里输入ctrl+c 正常关闭,才会执行destroy
2.2 servlet方法
/**
* 这个方法用于获取信息
* @return
*/
public String getServletInfo() {
return null;
}
/**
* 获取servlet配置对象的
* @return
*/
public ServletConfig getServletConfig() {
return null;
}
三,Servlet体系结构
简化servlet的开发
image.png
@WebServlet("/demo2")
public class ServletDemo2 extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("get..................");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("post..................");
}
}
使用url路径的形式访问会触发get方法
使用表单明确post请求 会触发post方法
因为这样会比传统的servlet处理更方便,在传统servlet中是使用service这个方法去处理方法逻辑的
get提交的请求参数在请求行中,也就是url地址栏
post提交的请求参数在请求体里面 body
所以不同请求方式请求参数位置不一样,所以写不同的处理逻辑
所以需求根据请求方式的不同分别处理
3.2 Servlet urlParttern配置
- 1@WebServlet("/demo2")可以配置多个url
例如:@WebServlet(urlParttern={"/demo2","/demo3"}) - 2 urlParttern匹配规则
精确匹配:配置路径和访问路径一模一样 @WebServlet(urlParttern={"/user/demo2"})
目录匹配:@WebServlet(urlParttern={"/user/"})
访问路径 localhost:8080/user/aaa , localhost:8080/user/bbb 都可以访问
扩展名匹配:@WebServlet(urlParttern={"/user/.txt"})
localhost:8080/user/aaa.txt localhost:8080/user/xyz.txt都可以访问
任意匹配 :@WebServlet(urlParttern={"/*"})
后面写什么都可以访问
xml配置
网友评论