参照:

  浅谈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;@Overrideprotected 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();}@Overrideprotected 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();

转载于:https://www.cnblogs.com/DennyZhao/p/7793181.html

Tomcat Servlet学习相关推荐

  1. 一、Web服务器——Tomcat Servlet学习笔记

    今日内容 web相关概念回顾 web服务器软件:Tomcat Servlet入门学习 一.web相关概念回顾 软件架构 C/S:客户端/服务器端 B/S:浏览器/服务器端 资源分类 静态资源:所有用户 ...

  2. Servlet学习笔记 Servlet原理

    Servlet学习笔记 Servlet原理 一.Servlet基础 1.Servlet执行过程 用户请求一个Servlet,Servlet容器自动构建请求和响应对象,然后执行Servlet的servi ...

  3. 张利国java pdf_Java Web开发与实战–Eclipse+Tomcat+Servlet+JSP整合应用 (刘伟张利国) PDF...

    资源名称:Java Web开发与实战–Eclipse+Tomcat+Servlet+JSP整合应用 (刘伟,张利国) PDF 第1章 web开发工具的安装与使用 第2章 web编程技术基础 第3章 s ...

  4. Tomcat优化学习

    服务器分类 javaEE是企业技术的平台,技术有jsp,servlet,jdbc,在2018年更名为jakartaEE(雅加达), 应用服务器(javaEE技术全部支持实现) 是javaEE规范的具体 ...

  5. Tomcat Servlet Request

    Tomcat & Servlet Web相关概念回顾 软件架构 C/S:客户端/服务器端 B/S:浏览器/服务器端 资源分类 静态资源:所有用户访问后,得到的结果都是一样的,静态资源可以被浏览 ...

  6. Tomcat Servlet 工作原理

    文章目录 Tomcat Servlet 工作原理 Servlet Tomcat解析Context容器过程及如何构建Servlet Servlet容器启动过程 Web应用初始化工作 创建Servlet实 ...

  7. Nginx + Tomcat + Session学习 - ﹎敏ō - 博客园

    Nginx + Tomcat + Session学习 - ﹎敏ō - 博客园 Nginx + Tomcat + Session学习 - ﹎敏ō - 博客园 Nginx + Tomcat + Ses ...

  8. Intellij IDEA 2020.2.3 配置使用 tomcat+servlet

    Intellij IDEA 2020.2.3 配置使用 tomcat+servlet 创建项目 配置tomcat服务器 初步使用 执行jsp文件 执行servlet tomcat版本问题 手动导入se ...

  9. Servlet学习DAY_01:服务器概念/Web服务器的作用/ Servlet概念/ 如何关联和解除Tomcat/ 创建一个Web工程 /Servlet响应流程/ Get-Post /常见异常

    Servlet 什么是服务器 服务器就是一台高性能电脑 电脑上安装了提供服务的软件就称为 xxx服务器 举例: 邮件服务器: 就是在电脑上安装了提供邮件收发服务的软件 ftp服务器: 就是在电脑上安装 ...

最新文章

  1. Linux重定向指令
  2. Fiddler二次开发 C#
  3. 母校/母语/母公司怎么说?
  4. 从HTTP 400 bad request说起 - 一个函数被注释掉后引起的血案
  5. 基于corundumstudio建立websocket长连接
  6. macOS 新功能:【控制中心】让你的 Mac 系统更方便!
  7. Java基础知识——Java常用类的使用
  8. [Data Pump]impdp导入笔记
  9. 线程中消费者生产者的实例代码(synchronized关键字)
  10. html5自动显示日期脚本,HTML显示日期时间代码 - [js 特效代码]
  11. windows server2016忘记密码,windows重置密码,windows破解密码,win10忘记密码,win10破解密码,windows server2016破解密码
  12. 记录ubuntu20.04成功编译安装opencv4 c++环境
  13. 编写项目工作说明书(SOW)
  14. mov格式如何转换成mp4?详细步骤教程
  15. javascript小方法之数组去重、数字转成逗号分隔、html元素去标签
  16. 互联网公司客户如何选择短信平台或短信通道需要知道的基本知识
  17. 苹果CMS10原生APP修改版 影视APP源码附安装教程
  18. 情人节有哪些礼物可以送给男朋友的,情人节送礼推荐
  19. 【干货总结】分层强化学习(HRL)全面总结
  20. 解决vscode进行chrome调试时报错:localhost拒绝了我们的连接请求

热门文章

  1. VMware下centos7安装VMware Tools
  2. Spring Arm Component
  3. redis在PHP中的基本使用
  4. SaltStack的Grains和Pillar
  5. Win7 64位系统 注册 ocx控件
  6. 运行sqlplus时遇到cannot restore segment prot after reloc: Permission denied
  7. ipa包中图片进行了Compress之后的主要处理和作用
  8. wamp php字符编码,关于Apache默认编码错误 导致网站乱码的解决方案
  9. USB入门系列之一:USB概述
  10. 解决会声会影x7 x8打开即“已停止工作问题”