垂阅前必看:

这都是我总结的我觉得是学习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笔记的更多相关文章

  1. servlet(4) - servletAPI - 小易Java笔记

    Servlet规范核心类图 1.请求和响应对象 ==> HTTP协议包含请求和响应部分. ==> HttpServletRequest就代表着请求部分 ==> HttpServlet ...

  2. servlet(2) - 利用MyEclipse新建一个servlet - 小易Java笔记

    1.Tomcat在MyEclipse中集成 ==> Window-preferences-MyEclipse-Servers-Tomcat-Tomcat 6.x-点击右侧的Browse,选择你的 ...

  3. servlet(3) - servlet知识点 - 小易Java笔记

    1.servlet的生命周期 (1)容器最终要调用service方法为客户进行服务.(此处“容器”指java运行的环境,tomcat是jsp/servlet的容器) ==> 在内存中一个Serv ...

  4. servlet(1) - 手写第一个servlet程序 - 小易Java笔记

    声明:如tomcat的安装目录为D:\Java\tomcat6,下面要根据tomcat的安装目录而定 1. 建立程序的文件结构 ==>找到tomcat的安装目录,在webapps目录下新建一个名 ...

  5. JSP(3) - 9个JSP内置对象 - 小易Java笔记

    1.9个JSP内置对象 内置对象引用名称     对应的类型 request HttpServletRequest response HttpServletResponse config Servle ...

  6. JSP(2) - JSP指令 - 小易Java笔记

    JSP指令是给JSP引擎用的,即给服务器用的.作用是告诉服务器,该如何处理JSP中除了指令之外的内容.包括page.include.taglib三种 基本的语法格式:<%@ 指令名称 属性1=& ...

  7. JSP(1) - JSP简介、原理、语法 - 小易Java笔记

    1.JSP简介 (1)JSP的全称是Java Server Pages(运行在服务器端的页面),实际就是Servlet(学习JSP的关键就是时刻联想到Servlet) (2)JSP.Servlet各自 ...

  8. servlet(5) - Cookie和session - 小易Java笔记

    1.会话概述 (1)会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. (2)会话过程中的数据不宜保存在request和servle ...

  9. JAVAWEB - Servlet原理及其使用>从零开始学JAVA系列

    目录 Servlet原理及其使用 什么是Servlet Servlet的使用 编写一个Servlet,使用继承HttpServlet的方式 配置web.xml 很简单的几个JSP文件 小提示,如果继承 ...

随机推荐

  1. OpenPAI:大规模人工智能集群管理平台介绍及任务提交指南

    产品渊源: 随着人工智能技术的快速发展,各种深度学习框架层出不穷,为了提高效率,更好地让人工智能快速落地,很多企业都很关注深度学习训练的平台化问题.例如,如何提升GPU等硬件资源的利用率?如何节省硬件 ...

  2. debian8.2安装kubernetes

    master上通过kubeadm安装Kubernetes 添加国内阿里源后安装kubeadm: deb https://mirrors.aliyun.com/kubernetes/apt/ kuber ...

  3. OO5-7次作业总结

    写在最前面: 转眼间就又到了一月一次的总结时间,这次的三个作业,我个人感觉可能是最令人难受的三次作业了.不只是因为它们是多线程,更是因为它们几乎是全新的三次作业,每次的代码几乎都要重头开始. 第五次作 ...

  4. linux基本操作2

    将当前用户目录下的文件清单输出到文件list1.txt(当前用户目录下)中ls -l > list1.txt 利用管道命令将根(/)下所有修改日期在4月16日的文件清单输出到list2.txt( ...

  5. Ext.Net中如何获取组件

    我们在编写函数function的时候,常常需要用到页面上的组件.这时候就需要调用组件. 在Ext.net中,调用组件可以用.App.ID.(ID指的是想要调用的组件的ID). 例如: 我写一个函数需要 ...

  6. [剑指Offer] 6.旋转数组的最小数字(二分法)

    题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转 ...

  7. BZOJ1037 ZJOI2008生日聚会(动态规划)

    设f[i][j][x][y]为安排了i个男孩j个女孩,后缀最大男孩-女孩数为x,最大女孩-男孩数为y的方案数.转移显然. #include<iostream> #include<cs ...

  8. 【题解】SDOI2014数数

    真的很开心呢,总算是有一道完完全全由自己做出来的题目啦~ 这一道题目洛谷P3311和另一道JSOI文本生成器的题目是十分相像的,dp方面几乎相同.只是<=n的约束,让这道题目必须结合数位dp的方 ...

  9. BZOJ4012 [HNOI2015]开店 【动态点分治 + splay】

    题目链接 BZOJ4012 题解 Mychael并没有A掉,而是T掉了 讲讲主要思路 在点分树上每个点开两棵\(splay\), 平衡树\(A\)维护子树中各年龄到根的距离 平衡树\(B\)维护子树中 ...

  10. BZOJ_DAY6???

    昨天没睡好啊啊啊,真是要命,睡不着,今天状态爆炸...34题击破. 下一步目标:网络流24题,树链剖分. (洛谷比赛了好开心,希望这次能比以前强吧,嗯)