servlet(6) - servlet总结 - 小易Java笔记
垂阅前必看:
这都是我总结的我觉得是学习servlet应该掌握的,我在学习期间也做了一个博客项目来让所学的知识得以巩固。下面就是博客项目链接、前面的servlet相关的笔记总汇,还有就是我把觉得在学习过程中容易混淆的知识点再次拿出来总结了一番,希望对大家有帮助。
学习了Servlet就可以更好的学习JSP了,后期我还会慢慢更新JSP相关的知识。在此祝福学习Java的小伙伴们快快变成大神。
当然欢迎大家来Java技术交流群哦,现在人还比较少,(*^__^*) 嘻嘻……欢迎您的加入!
Servlet项目实战:博客项目
Servlet笔记总汇:(笔记中的源代码下载)
servlet(1) - 手写第一个servlet程序 - 小易Java笔记
servlet(2) - 利用MyEclipse新建一个servlet - 小易Java笔记
servlet(3) - servlet知识点 - 小易Java笔记
servlet(4) - servletAPI - 小易Java笔记
servlet(5) - Cookie和session - 小易Java笔记
servlet(6) - servlet总结 - 小易Java笔记
易错知识点:
1、几种作用域
==>
所谓"作用域"就是通过设置属性的方式,将一些信息绑定到对象上。
==> Servlet 中能够设置属性的对象有ServletRequest/HttpServletRequest、HttpSession、ServletContext。用于存储、查询和删除这些属性的方法对于所有的作用域都是相同的。它们是:
==> Object getAttribute(String name);
==> void setAttribute(String name, Object value);
==> void removeAttribute(String name);
==> Enumeration getAttributeNames();
① ServletRequest :请求作用域
==> ServletRequest 对象获得方法
javax.servlet.ServletRequestWrapper.getRequest();
通过HttpServletRequest 接口中的getSession() 方法还可以获得会话作用域(HttpSession)
② HttpSession:会话作用域
==> 对应于servlet中的Session,为访客分配一个唯一标识,并存储在客户端的Cookie中。
==> HttpSession 对象获得方法
HttpServletRequest.getSession();
③ ServletContext:上下文作用域(Application)
==> 对应于Servlet中的Application,是Servlet与Servlet容器直接通信的接口,Servlet容器在启动一个Web应用时,会为它创建一个唯一的ServletContext对象。同一个Web应用的所有Servlet共享一个ServletContext,Servlet对象通过它来访问Servlet容器中的各种资源。
==> ServletContext 对象获得的几种方式:
javax.servelt.http.HttpServlet.getServletContent();
javax.servlet.http.HttpSession.getServletContext();
javax.servlet.jsp.PageContext.getServletContext();
javax.servlet.servletConfig.getServletContext();
==> 几种作用域的区分
request:只针对一次请求,下一次请求数据就会丢失
session:针对一次会话,默认是在关闭浏览器之前数据都可以使用,还可以设置他的保存时间(这样只能用同一个浏览器访问才有效)
application:同一个Web应用的所有Servlet的数据共享,相当于一个全局变量
2、各种URL地址的写法
(1)路径包含相对路径和绝对路径(建议的)
(2)绝对路径的写法,何时需要加上应用名称"/项目名"的原则:
地址是不是给服务器用的,如果是,"/"就代表着当前应用。如果是给客户端用的绝对路径要加上"/项目名"。
(3)举例
<link href=path/> 要加"/项目名"
<script src=path/> 要加"/项目名"
<img src=path/> 要加"/项目名"
<a href=path/> 要加"/项目名"
RequestDispatcher.include(path) 不要加,"/"就代表着当前应用
RequestDispatcher.forward(path) 不要加,"/"就代表着当前应用
HttpServletResponse.sendRedirect(path) 要加"/项目名"
ServletContext.getRealPath(path) 不要加,"/"就代表着当前应用
(4)自己总结:在java,html,jsp文件中有关url的填写:
==> 有/代表绝对路径(/项目名/目录名/文件名),可写为url="/项目名/目录名/文件名"【或者为request.getContextPath() + "/目录名/文件名"】
==> 无/代表相对路径,相对于请求的链接地址
向下跳转:如果是根目录的文件请求跳转到某目录下的文件,可以可直接填写url="目录名/文件名"
向上跳转:如果是某目录下的文件请求跳转到根目录的文件,则只能用(1)的绝对路径的表示方法
==> (除了web.xml中的url-parrern中的/斜杠)
request.getContextPath()获取的是/项目名
如果是WEB-INF下面的文件:req.getRequestDispatcher("/WEB-INF/pages/comment.jsp").forward(req, resp); 此时不能加 /项目名
3、小知识点
(1)浏览器报错,提示4040代表页面不存在或者路径错误(HTTP Status 404- 后面还有提升信息表示路径错误,后面没有提示信息代表无权访问)
(2)WEB-INF下的文件不能直接在浏览器的地址栏或者href=""访问,要通过servlet中的
(3)重定向不能重定向到WEB-INF下的页面
servlet(6) - servlet总结 - 小易Java笔记的更多相关文章
- servlet(4) - servletAPI - 小易Java笔记
Servlet规范核心类图 1.请求和响应对象 ==> HTTP协议包含请求和响应部分. ==> HttpServletRequest就代表着请求部分 ==> HttpServlet ...
- servlet(2) - 利用MyEclipse新建一个servlet - 小易Java笔记
1.Tomcat在MyEclipse中集成 ==> Window-preferences-MyEclipse-Servers-Tomcat-Tomcat 6.x-点击右侧的Browse,选择你的 ...
- servlet(3) - servlet知识点 - 小易Java笔记
1.servlet的生命周期 (1)容器最终要调用service方法为客户进行服务.(此处“容器”指java运行的环境,tomcat是jsp/servlet的容器) ==> 在内存中一个Serv ...
- servlet(1) - 手写第一个servlet程序 - 小易Java笔记
声明:如tomcat的安装目录为D:\Java\tomcat6,下面要根据tomcat的安装目录而定 1. 建立程序的文件结构 ==>找到tomcat的安装目录,在webapps目录下新建一个名 ...
- JSP(3) - 9个JSP内置对象 - 小易Java笔记
1.9个JSP内置对象 内置对象引用名称 对应的类型 request HttpServletRequest response HttpServletResponse config Servle ...
- JSP(2) - JSP指令 - 小易Java笔记
JSP指令是给JSP引擎用的,即给服务器用的.作用是告诉服务器,该如何处理JSP中除了指令之外的内容.包括page.include.taglib三种 基本的语法格式:<%@ 指令名称 属性1=& ...
- JSP(1) - JSP简介、原理、语法 - 小易Java笔记
1.JSP简介 (1)JSP的全称是Java Server Pages(运行在服务器端的页面),实际就是Servlet(学习JSP的关键就是时刻联想到Servlet) (2)JSP.Servlet各自 ...
- servlet(5) - Cookie和session - 小易Java笔记
1.会话概述 (1)会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. (2)会话过程中的数据不宜保存在request和servle ...
- JAVAWEB - Servlet原理及其使用>从零开始学JAVA系列
目录 Servlet原理及其使用 什么是Servlet Servlet的使用 编写一个Servlet,使用继承HttpServlet的方式 配置web.xml 很简单的几个JSP文件 小提示,如果继承 ...
随机推荐
- Week9 Teamework from Z.XML-Scenario testing
关于场景测试 About Scenario testing 一.关于用户(About Personas) 1 我们如何预期我们的用户对我们的软件的使用 (How do we expect diff ...
- [译]如何比较同一分支上的不同commit的代码区别?
原文来源:https://stackoverflow.com/questions/3338126/how-do-i-diff-the-same-file-between-two-different-c ...
- 【iOS开发】iOS对UIViewController生命周期和属性方法的解析
iOS对UIViewController生命周期和属性方法的解析 一.引言 作为MVC设计模式中的C,Controller一直扮演着项目开发中最重要的角色,它是视图和数据的桥梁,通过它的管理,将数据有 ...
- 文件系统之 stat与access
stat命令 stat既有命令也有同名函数,用来获取文件Inode里主要信息,所以stat命令的输出信息比ls命令的输出信息要更详细,stat 跟踪符号链接,lstat不跟踪符号链接,其中会输出对应文 ...
- 201621044079WEEK06-接口、内部类
作业06-接口.内部类 1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结. 注1:关键词与内容不求多 ...
- spring MVC 字符串数组传值 字符带有逗号,问题
按照如下图所示方式传值,想在后台得到一个长度为1的数组,后台直接根据,进行分割,就得到长度为2的数组 1.曲线救国解决法 解决方案, 前端对参数进行编码 encodeURIComponent(valu ...
- iOS 定时器开发详情
目录 概述 NSTimer performSelector GCD timer CADisplayLink 一.概述 在平时的开发任务中,定时器是我们常用的技术.这一节我们来学习iOS怎么使用定时器. ...
- 【bzoj4724】[POI2017]Podzielno 二分
题目描述 B进制数,每个数字i(i=0,1,...,B-1)有a[i]个.你要用这些数字组成一个最大的B进制数X(不能有前导零,不需要用完所有数字),使得X是B-1的倍数.q次询问,每次询问X在B进制 ...
- PHP的报错级别并返回当前级别error_reporting()
定义和用法:error_reporting() 设置 PHP 的报错级别并返回当前级别.函数语法:error_reporting(report_level) 如果参数 level 未指定,当前报错级别 ...
- jQuery插件jquery.fullPage.js
简介如今我们经常能看到全屏网站,尤其是国外网站.这些网站用几幅很大的图片或者色块做背景,再添加一些简单的内容,显得格外的高端大气上档次,比如 iPone 5C 的介绍页面.QQ浏览器的官方网站.百度史 ...