参照:

  浅谈cookie跨域的解决方案——document.domain(http://blog.csdn.net/zhouziyu2011/article/details/61200943)

  

Servlet 目录:

  • servlet的基本访问:

  • request的相关信息:

  • cookie:

  • session:

servlet的基本访问:

1.所有的SpringMvc,struts等都是基于Servlet的访问封装。

最原始的访问:

web.xml

  <servlet>
<servlet-name>helloExample</servlet-name>
<servlet-class>servlets.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloExample</servlet-name>
<url-pattern>/servlets/helloExample</url-pattern>
</servlet-mapping>

创建java:

/**
* 最原始的Servlet
*
* @author DennyZhao
* @date 2017年11月5日
* @version 1.0
*/
public class HelloServlet extends HttpServlet { /**
* 自动序列号
*/
private static final long serialVersionUID = 4402969242082947388L; @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html");
resp.setCharacterEncoding("UTF-8");
resp.getWriter().append("Hello My Servlet....");
resp.flushBuffer();
} @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}

地址访问: http://127.0.0.1:8080/ServletEx/servlets/helloExample

Request:

从request中可以获取到访问者的信息。

        System.out.println(req.getCharacterEncoding());
System.out.println(req.getContextPath());
System.out.println(req.getMethod());
System.out.println(req.getPathInfo());
System.out.println(req.getProtocol());
System.out.println(req.getRemoteAddr());
System.out.println(req.getRemoteHost());
System.out.println(req.getRemoteUser());
System.out.println(req.getRequestURI());
System.out.println(req.getRemotePort()); --------------------------------------- null
/ServletEx
GET
null
HTTP/1.1
127.0.0.1
127.0.0.1
null
/ServletEx/servlets/helloExample
62835

request的header部分信息输出:

        Enumeration<String> headerNames = req.getHeaderNames();
while(headerNames.hasMoreElements()) {
String nextElement = headerNames.nextElement();
System.out.println(String.format("------name:%s1,-----value:%s2",nextElement, req.getHeader(nextElement)));
}

结果:

------name:host1,-----value:127.0.0.1:80802
------name:connection1,-----value:keep-alive2
------name:cache-control1,-----value:max-age=02
------name:user-agent1,-----value:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.91 Safari/537.362
------name:upgrade-insecure-requests1,-----value:12
------name:accept1,-----value:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.82
------name:accept-encoding1,-----value:gzip, deflate, br2
------name:accept-language1,-----value:zh-CN,zh;q=0.82
------name:cookie1,-----value:_ga=GA1.1.210524813.1508312579; JSESSIONID=626E4D01F67954DD8795C1C3E42D4D8C2

request.parameter 获取前台传递的表单数据:

ResourceBundle: 用于指定查找properties文件的国际化。

HttpFilter.filter:用于处理html页面的 <> &等的转义。

创建index.html页面:

    <form action="servlets/helloExample">
firstName<input type="text" name="firstName" value="" />
<br/>SecondName<input type="text" name="secondName" value=""/>
<br/><button name="提交" type="submit">提交数据</button> </form>

后台获取前台的表单数据:

        String first = req.getParameter("firstName");
String second = req.getParameter("secondName");
resp.getWriter().append(String.format("Hello My Servlet....,my Name is %s1 %s2", first, second));

Cookie:

cookie的domain和path属性:

1、domain

表示cookie所在的域,默认为请求的地址,如网址为JavaScript.exam.cn/JavaScript/read.html,那么domain默认为JavaScript.exam.cn。如域A为catagory.exam.cn,域B为JavaScript.exam.cn,那么在域A生产一个令域A和域B都能访问的cookie就要将该cookie的domain设置为.exam.com;如果要在域A生产一个令域A不能访问而域B能访问的cookie就要将该cookie的domain设置为JavaScript.test.com。

2、path

表示cookie所在的目录,默认为/,就是根目录。如在同一个服务器上有目录/JavaScript/,/JavaScript/dir1/,/JavaScript/dir2/,现设一个cookie1的path为/JavaScript/,cookie2的path为/JavaScript/dir1/,那么JavaScript下的所有页面都可以访问到cookie1,而/JavaScript/和/JavaScript/dir2/的子页面不能访问cookie2。这是因为cookie能让其path路径下的页面访问。

默认情况下,cookie对创建它的页面和域与创建它的页面在同一目录的其他页面以及创建它的页面所在目录的子目录的其他页面可见,例如,localhost/JavaScript/write.html创建的cookie对localhost/JavaScript/read.html和localhost/JavaScript/catagory/read.html都是可见的,但对localhost/read.html不可见。

可以设置cookie的path属性,只要以path指定的路径前缀开始的同一服务器的页面均可见cookie,例如,设置path=/JavaScript,则localhost/JavaScript/catagory/write.html创建的cookie对localhost/JavaScript/read.html也是可见的;设置path=/,则cookie对localhost这台服务器上的页面均可见。

        Cookie[] cookie = req.getCookies();
if(cookie != null && cookie.length > 0) {
for(int i=0; i < cookie.length; i++) {
System.out.println(cookie[i].getName());
System.out.println(cookie[i].getValue());
}
}
Cookie cook = new Cookie("fisrtName", "zhangsan");
//cook.setDomain(req.getContextPath() + "/");
resp.addCookie(cook);

Session:

HttpSession session = req.getSession();
session.getId();

Tomcat Servlet学习的更多相关文章

  1. Servlet 学习笔记

    Servlet 运行在服务器上的 java 类: Servlet 容器为 javaWeb 应用提供运行时环境,负责管理 servlet 和 jsp 生命周期,以及管理他们的共享数据. 现在我们知道了 ...

  2. Tomcat&Servlet

    Tomcat&Servlet 一.web开发相关的概念 1. 软件架构 1.1 C/S架构 C:Client客户端, S:Server服务器 比如:QQ.微信.大型网游 优点: 显示效果炫 安 ...

  3. Web开发之Tomcat&Servlet

    <!doctype html>01 - JavaEE - Tomcat&Servlet figure:first-child { margin-top: -20px; } #wri ...

  4. tomcat&servlet初记

    tomcat&servlet初记 1. web相关概念 2. web服务器软件的学习:tomcat 3. servlet入门学习 web相关概念 1,软件架构 1,cs架构:客户端/服务器端 ...

  5. JavaWeb基础(day15)( http + tomcat + servlet + 响应)

    HTTP+Tomcat+Servlet+响应 HTTP HTTP  超文本传输协议(Hyper Text  Transfer  Protocol  ),一种网络协议. 协议的组成和过程 HTTP协议由 ...

  6. Servlet学习笔记(四)

    目录 Servlet学习笔记(四) 一.会话技术Cookie.session 1. 什么是会话技术? 2. 会话技术有什么用? 3. Cookie 3.1 什么是Cookie? 3.2 使用Cooki ...

  7. Servlet学习笔记(三)

    目录 Servlet学习笔记(三) 一.HTTP协议 1.请求:客户端发送欸服务器端的数据 2.响应:服务器端发送给客户端的数据 3.响应状态码 二.Response对象 1.Response设置响应 ...

  8. Servlet学习笔记(二)

    目录 Servlet学习笔记(二) Request对象 1.request和response对象: 2.request对象继承体系结构: 3.什么是HttpServletRequest ? 4.Htt ...

  9. JavaWeb学习总结(三)——Tomcat服务器学习和使用(二) 包含https 非对称秘钥 NB

    JavaWeb学习总结(三)--Tomcat服务器学习和使用(二) 一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命 ...

随机推荐

  1. SVN服务器搭建和使用(四)

    在第一次使用TortoiseSVN从服务器CheckOut的时候,会要求输入用户名和密码,这时输入框下面有个选项是保存认证信息,如果选了这个选项,那么以后就不用每次都输入一遍用户名密码了. 不过,如果 ...

  2. JS 得细心的坑位

    <script> function test(link) { link = link || 'none'; alert(link); } function test2(){ var lin ...

  3. Jmeter 在linux下的分布式压测

    Jmeter 在linux下的分布式压测 0.将 windows机器作为master 控制机(同时也兼做负载机slave), linux机器作为 负载机 slave. 1.linux环境安装 : (1 ...

  4. NOSQL之MONGODB

    MongoDB 基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案,它是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富, ...

  5. Asp.Net操作MySql数据库增删改查

    Asp.Net操作MySql数据库增删改查,话不多说直接步入正题.git源码地址:https://git.oschina.net/gxiaopan/NetMySql.git  1.安装MySQL数据库 ...

  6. mysql 严格模式 Strict Mode说明

    1.开启与关闭Strict Mode方法 找到mysql安装文件夹下的my.cnf(windows系统则是my.ini)文件 在sql_mode中增加STRICT_TRANS_TABLES则表示开启严 ...

  7. k最邻近算法——加权kNN

    加权kNN 上篇文章中提到为每个点的距离增加一个权重,使得距离近的点可以得到更大的权重,在此描述如何加权. 反函数 该方法最简单的形式是返回距离的倒数,比如距离d,权重1/d.有时候,完全一样或非常接 ...

  8. ToString yyyy-MM-dd ,MM 小写的故事。

    ToString MM 小写,有可能时间转为 :2013-49-02,放到数据库中查询,就报错.

  9. php的zend引擎执行过程 一

    1. Zend引擎主要包含两个核心部分:编译.执行: 执行阶段主要用到的数据结构: opcode: php代码编译产生的zend虚拟机可识别的指令,php7有173个opcode,定义在 zend_v ...

  10. serialize unserialize

    转自 http://www.cnblogs.com/yeer/archive/2009/03/25/1421161.html php函数serialize()与unserialize()   seri ...