Web服务器servlet

1.HTTP协议:客户端浏览器和Web服务器数据通讯格式的规范

2.Tomcat作为Web服务器管理我们的资源,在网络上共享,允许用户使用浏览器访问

目录结构:webapps里存放--静态资源(html,css,js,images,files...)

                                           --WEB-INF (名字不可变,该目录下不允许用户直接访问,受保护资源)

                                                --web.xml项目配置文件,服务端程序配置信息

                                                --classes服务端程序的class文件

                                                --lib服务端程序运行所需要的jar

3.在idea中创建一个Web工程,添加支持勾选JAVAEE中的Web application,在Add configuration中配置tomcat选择Local,在server中配置本地tomcat,在deployment中部署,idea会自动打包一个war包到tomcat,给Application context自己项目改一个名字,也就是访问路径

4.服务端程序servlet的实现步骤(需要导入jar包,需在WEB-INF下建一个lib文件夹放jar包,add as library),1.创建一个类extends HttpServlet,2.重写doxxx方法3.配置web.xml文件

5.web.xml配置

<servlet>
    <servlet-name>loginServlet</servlet-name>//servlet的名称
    <servlet-class>com.kcnode.servlet.LoginServlet</servlet-class>//全限定名称,反射创建6.
</servlet>
<servlet-mapping>
    <servlet-name>loginServlet</servlet-name>//映射的servlet名称
    <url-pattern>/login</url-pattern>//url
</servlet-mapping>

6.uri和url区别:uri是统一资源标识符,标识web上可访问的资源,url是统一资源定位符,url是uri的子类,用于定位一个资源的位置以及它的协议;例如uri:/web/html;

url:http://localhost:8080/web/html

7,service和doxx方法区别,service是servlet方法的入口类似于main方法,可以处理所以请求,没有重写调用父类,判断请求方式调用对于的doxx方法

8.servet的运行,输入网址->解析域名->找到主机和Web服务器->Web服务器将请求内容封装为Request对象->根据uri查找内部管理资源与之匹配的url-pattern->根据servletname找到权限的类名,通过反射创建servlet对象调用doxx方法传入req和resp对象,没有找到动态资源找静态

9.url-pattern怎么配1.精确匹配/login;/login.html不管哪种对于服务器来说都是字符串2.模糊匹配/*所有都可以*do前面模糊*前不能加/;精确匹配优先级高,配置过滤器时一般用模糊匹配

10,注解WebServlet(name="app1",urlPattern="/app1")

11.servlet的什么周期:构造方法Web容器启动后用户第一次访问时执行1次,init方法在构造方法执行后执行一次,doxx方法没访问一次执行一次,关闭或重启服务Destroy方法执行

因为Servlet的对象的创建延迟到用户第一次访问时,所有属于单例模式中的懒汉模式

在load-on-startup中配置指定一个正整数,会随着容器启动而创建,越小优先级越高,变成单例中的恶汉模式

12,servlet多线程安全问题,1避免在servlet中定义成员变量doxx中并发成员变量,2使用同步锁

13,servletconfig在父类init方法中可以获取web.xml中配置的信息

14,servletContext对象servlet上下文对象,一个运行项目只有一个,通过这个api可以获取servler的运行环境和全局参数

15,getRealPahh(),将相对路径转化为绝对路径,getResourceAsStream()获取想对路径资源返回输入流,路径定位到项目根目录,app.class.getClassLoader().getResourceAsStream()定位到项目的根目录下得WEB-INF-classess目录下

16,转发和重定向区别,1.转发只能访问项目内部静态和动态资源,重定向可以访问外部资源,2.转发是req.getRequestDispatcher("1.html").foward(req,resp)发起1次请求,地址栏没变,重定向是resp.sendRedirect("/rc/1.html")发起两次请求,地址栏变,3.业务的结束开始一个新业务使用重定向,业务没有结束使用转发

17,会话管理是客户端于服务端通讯过程中产生的数据,cookie是客户端会话技术,session是服务端会话技术

18,四个域对象,PageContext,RequestContext,session,ServletContext,PageContenxt作用于一个jsp页面,RequestContenxt一个请求资源,ServletContext整个项目,例如登录时账号密码在不同资源都可以用,用RequestContenxt需要转发,ServletContext,保存账户的key相同,所以出现后登录账户覆盖先登录账户,不能区分用户

19,cookie特点,不能直接保存中文,数据明码保存,数量有限制,大小不超过4K;cookie默认保存在浏览器内存中,设置存活时间,正整数秒,使用文本保存,负整数浏览器保存,0间接删除;浏览器访问服务器时会检查cookie的domain是否于服务器一致,一样携带,同一个项目不同资源访问到的cookie也不一样,由cookie的path决定

20,session作用范围,打开浏览器访问资源到浏览器关闭,第一次访问没有创建返回与浏览器绑定,数据结构为map,getSession(boolean b)参数为false没有session对象不创建返回null,存活时间默认30分钟

21,jsp运行在Web服务器上,本质为一个servlet,Web服务器将jsp翻译为java文件,再编译为class文件,反射创建对象,继承的类父类为HttpServlet,调用service方法处理业务,输出数据用el表达式和jstl标签

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值