servlet中的细节
Get方法有大小限制:1024个字符。这些信息使用 Query_String头传递,并通过Query_String环境变量访问。
Post方法:请求体信息使用FromData头传递。
读取所有表单参数:getParamterNames()方法。枚举类型。
遍历枚举:使用hasMoreElements()来确定何时停止循环,使用nextElement()方法来获取每个参数名称。
Servlet请求:
String host = req.getHeader("Host"); // localhost:8080 主机和端口
String referer = req.getHeader("Referer"); // http://localhost:8080/myservlet/index.jsp 页面1链接到页面2,到页面2后,页面1的URL地址
String contextPath = req.getContextPath(); // /myservlet
String requestURI = req.getRequestURI(); // /myservlet/DisplayHeader
StringBuffer requestURL = req.getRequestURL(); // http://localhost:8080/myservlet/DisplayHeader
String requestedSessionId = req.getRequestedSessionId(); // F06D8A91D7A213B23BD42107CFA68601 Session 会话 id
int serverPort = req.getServerPort(); // 8080 端口号
http://localhost:8080/myservlet/DisplayHeader?method=show 详解
http: 传输协议
localhost: 主机地址
8080: 端口号
myservlet: contextPath
DisplayHeader: servletPath
method=show: 参数
Servlet 响应:
resp.setContextType("text/html");
PrintWriter out = resp.getWriter();
out.print("hello world!");
一个有意思的小栗子(每隔5秒刷新页面):
resp.setIntHeader("Refresh", 5);
Calendar calendar = new GregorianCalendar();
String am_pm;
int hour = calendar.get(Calendar.HOUR);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
if(calendar.get(Calendar.AM_PM) == 0)
am_pm = "AM";
else
am_pm = "PM";
String CT = hour+":"+ minute +":"+ second +" "+ am_pm;
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
out.print(CT);
Servlet过滤器目的:
在它们访问后端资源之前,拦截这些来自客户端的请求
在他们发送回客户端之前,处理这些来自服务端的响应
规范建议的各种类型的过滤器:
身份验证过滤器。
数据压缩过滤器。
加密过滤器。
触发访问事件资源的过滤器。
图像转换过滤器。
日志记录和审核过滤器。
MIME-类型链过滤器。
Tokenizing 过滤器。
转换 XML 内容的 XSL/T 过滤器。
filter-mapping 顺序决定了过滤顺序
Cookie的键和值不能包含后边的任意一个字符: [ ] ( ) = , " / ? @ : ;
Session:
删除整个会话:你可以调用 public void invalidate() 方法来删除整个会话。
设置会话超时:你可以调用 public void setMaxInactiveInterval(int interval) 方法来单独设置会话超时。
web.xml 配置 Session 会话超时(分钟):
<session-config>
<session-timeout>15</session-timeout>
</session-config>
servlet中的细节的更多相关文章
- 在Servlet中出现一个输出中文乱码的问题(已经解)。
在Servlet中出现一个输出中文乱码的问题,已经解. @Override public void doPost(HttpServletRequest reqeust, HttpServletResp ...
- Servlet的一些细节问题
Servlet的细节问题 1.一个已经注册的Servlet可以被多次映射即: <servlet> <!-- servlet的注册名 --> <servlet-name&g ...
- Servlet中的请求包含
public class SrcIncludeServlet extends HttpServlet { public void doGet(HttpServletRequest request, H ...
- jsp/servlet中的编码问题
首先声明以下只是我个人的看法,有部分观点与网上人云亦云的观点不一样,不过凡事必恭亲,我还是相信自己测试的结果 推荐一个很好地URL编码详解http://www.ruanyifeng.com/blog/ ...
- 【Java框架型项目从入门到装逼】第五节 - 在Servlet中接收和返回数据
在上一节的程序中,我们可以看到HttpServletRequest, HttpServletResponse这两个对象.可以说,这是JavaWeb中至关重要的两个对象.接下来,我们来做一个简短的说明: ...
- servlet中的request和response
request对象 1.什么是请求 a.浏览器向服务器发送数据就是请求. 一.request功能1--获取数据 1.获取浏览器相关的信息 getRequestURL方法 -- 返回客户端发出请求完整U ...
- servlet中的“/”代表当前项目,html中的“/”代表当前服务器
servlet中重定向或请求转发的路径如果用“/”开头,代表当前项目下的路径,浏览器转发这条路径时会自动加上当前项目的路径前缀,如果这个路径不是以“/”开头,那么代表这个路径和当前所在servlet的 ...
- Servlet规范简介——web框架是如何注入到Servlet中的
Servlet规范简介--web框架是如何注入到Servlet中的 引言 Web框架一般是通过一个Servlet提供统一的请求入口,将指定的资源映射到这个servlet,在这个servlet中进行框架 ...
- web.xml中在Servlet中获取context-param和init-param内的参数
引自:http://blog.csdn.net/yakson/article/details/9203231 web.xml里面可以定义两种参数:1.application范围内的参数,存放在serv ...
随机推荐
- 【LeetCode】338. Counting Bits (2 solutions)
Counting Bits Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num ...
- Linux之crontab
一 cron crond位于/etc/rc.d/init.d/crond 或 /etc/init.d 或 /etc/rc.d /rc5.d/S90crond,最总引用/var/lock/subsys ...
- Snippet: align a TextView around an image
A few weeks ago I discovered the Spans on Android,after reading the wonderful post by Flavien Lauren ...
- Windows调试学习笔记:(二)WinDBG调试.NET程序示例
好不容易把环境打好了,一定要试试牛刀.我创建了一个极其简单的程序(如下).让我们期待会有好的结果吧,阿门! using System; using System.Collections.Generic ...
- 计算A/3,不用除法
int DividedBy3(int A) { ; ; i <= ; i += ) p += A << i; return (-p); }
- Android Weak Handler:可以避免内存泄漏的Handler库
这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识.前端.后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过! android使用java作 ...
- ubuntu下搭建lamp
一.使用apt-get方式为Ubuntu安装PHP+MYSQL+Apache 分别执行如下命令: (1)安装MYSQL sudo apt-get install mysql-server ...
- Xamarin.Forms中的ListView的ItemTrapped事件与ItemSelected事件的区别
今天对Xamarin.Forms中的ListView的两个事件(ItemTrapped和ItemSelected)做了小小的研究,发现有以下几点区别: 1.ItemTrapped事件会优先被触发. 2 ...
- cocos在win平台exe无法使用 UserDefault 解决方法
exe模拟器用来调度cocos本来是很方便的事情,但最近很多win10策划无法调用UserDefault.一直以为是权限问题,今天有空读一下码才发现.原来是cocos的bug.存在本地的UserDef ...
- 解决php中echo出来的汉子乱码
问的人太多了,就列出来展示给大家! 需要了解的概念: Content-Type:用于定义用户的浏览器或相关设备如何显示将要加载的数据,或者如何处理将要加载的数据 MIME:MIME类型就是设定某种扩展 ...