Servlet学习笔记

简介

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
目前JavaEE中的主流框架(SpringMVC等)都是基于Servlet的req,rep实现的前后端交互功能
在这里插入图片描述

localhost:8080

localhost:当地地址
8080:tomcat部署的端口
http://localhost:8080/Servlet02_war_exploded/requestapi
这是访问路径,然后tomcat服务器将访问的内容传回浏览器进行显示。
访问的是当地的tomcat所以是localhost:8080.

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
		  http://java.sun.com/xml/ns/javaee/web-app_4_0.xsd"
           version="4.0">
<!--    servlet标签给tomcat配置servlet程序-->
            <servlet>
<!--                给sevlet程序起别名-->
                <servlet-name>HelloServlet</servlet-name>
<!--                全名与别名绑定-->
                <servlet-class>HelloServlet</servlet-class>
            </servlet>
    <servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
<!--        /hello表示路径为:http://ip:port/工程路径/hello-->
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
</web-app>
<!--原理首先给实现servlet接口的java程序起别名,然后根据别名绑定对应的路径-->
<!--运行时一旦对应的路径文件被访问就立即执行别名对应的servlet程序的servlet函数-->

在这里插入图片描述

路径解析

在这里插入图片描述
对于Tomcat进行配置到C盘然后再在localhost文件夹中配置资源文件路径等信息。

在这里插入图片描述

tomcat服务器指向的是可执行文件,不是源文件路径。
而可执行文件是idea自动编译的out文件夹,所以路径和源文件不一样。
localhost文件夹内配置了资源xml文件。

实际运行中http://localhost:8080/指的就是C盘中对应项目的localhost文件夹内的资源xml文件,因此xml文件中Context的path属性值可以改变只要其映射的docBase资源路径不变即可。
于是完整的路径为
http://localhost:8080/xml配置文件path属性值(其实和xml文件名一样)映射为docBase属性值/基于docBase路径的资源访问

XML文件名还有path指定的别名是一致的,自然也是可以修改的,毕竟主要是起映射作用,用的是docBase值。
这是配置tomcat的路径
访问流程:
先访问C盘对应项目的localhost文件夹,根据xml文件path属性映射的docBase值到对应的out文件的具体路径,再访问运行对应的out文件夹中的可执行文件

项目运行时候的网址

因为源文件(.java)和运行文件(.class)不一样,运行时运行,class所以路径和源文件不一样。
localhost文件夹里有Tomcat配置xml然后使用配置好的别名进行访问对应的class文件(out文件夹)。
这也是为什么引用图片的时候要使用…/或者./因为真正的路径并不是idea里面src的路径。
图片会再次编译复制在是对应out文件夹路径里面。
而且多用xml文件标签里面的class属性指定对应的可运行类,因为class文件夹在out里面,编译前是不知道的,需要class属性进行配置和指定(可见spring框架xml文件的编写)。
到时候运行的时候对应的路径都会重新按照out文件夹里面的配置运行。

http://localhost:8080/ServletJavaWeb/
在这里插入图片描述
在这里插入图片描述
可以通过Edit Configuration起一个别名类似映射关系,代替工程名,但是.class文件的名字没有改变。
在这里插入图片描述

响应码

在这里插入图片描述

Servlet请求转发

转发的时候要将本页面的request一起转过去,因为新设置的属性并没有真实写入web.xml中,当servlet2需要使用的时候就得通过request参数从内存中提取。

		request.setAttribute("key","pass");
        RequestDispatcher requestDispatcher= request.getRequestDispatcher("/servlet2");
        requestDispatcher.forward(request,request);

在这里插入图片描述

Servlet文件路径配置的真相

在这里插入图片描述
注意这是规定好的配置方式,class默认指向WEB-INF文件夹下的classes文件,不能人为对map进行操作
否则服务器配置出错。
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值