[HttpServletResponse resp] [由servlet处理响应] 1.一般可以用通过resp获得一个输出流(writer),然后通过输出流将HTML写入响应.例如: resp.setContentType("text/html"); PrintWriter out = resp.getWriter(); out.println("Beer Selection Advice<br>"); 2.常用的一些方法. 3.有时还会用到.....…
典型的安全问题:假冒者.窃听者.非法升级者 认证方式: Base64 .摘要认证 .客户端证书.表单认证,重点熟悉摘要算法( HASH . MD5 等) 安全机制:授权.认证.数据完整性.机密性 80 端口. 443 端口 通过 HTTP . HTTPS 传输数据的区别, SSL 等概念 重放攻击. SQL 注入等 [参考] <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="ht…
基本上是<Head First Servlets and JSP>内容的整理.扩充.顺便推荐一个供参考的JSP教程:JSP Tutorial内容很全面,还有一些有趣的实例. 完整代码参考 EL隐式对象汇总 pageContext使用参考 EL表达式的基本规则 关于EL的一些细节 通过EL获得request参数 从request得到更多信息 获得Request Method? xxxxScope有意义吗? 通过EL调用函数 EL与数学运算 1.EL隐式对象汇总.如下所示: 更详细的内容可以参考 …
接笔记15. 1.不管是JSP中的<%%>还是<%\=%>最终都将处于servlet的方法体中,那么有没有一种元素可以声明成类的成员呢? ——答案是有,而且非常非常简单,这个元素就是<%!%>,我们用它来解决笔记15中的问题,只需要在原基础上加一个感叹号就可以了. <%@ page import="Sample.Counter" %> <%@ page contentType="text/html;charset=UTF-…
直接从请求到JSP,不经过servlet <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> body { font-family:'comic sans ms',sans-serif; } </style> </head> &l…
可以建立多态的bean引用吗 使用type,但没有class scope属性默认为“page” 从有脚本到无脚本 1.快速搭建一个测试环境:输入用户名,返回“Hello, 用户名” index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style>…
1.采用MVC,不仅要求业务逻辑和表示分离.实际上,业务逻辑甚至根本不知道表示的存在.MVC的关键是,业务逻辑要与表示分离,而要求在中间放上别的东西,这样业务逻辑本身就可以作为一个可以重用的Java类存在,它根本不用对视图有所了解. 2.MVC迷你教程,创建和部署MVC Web应用. 第一步:分析用户视图,以及高层体系结构 第二步:创建用于开发这个项目的开发环境 第三步:创建用于部署这个项目的部署环境 第四步:对Web应用的各个组件完成迭代的开发和测试 第一步:分析用户视图,以及高层体系结构(方…
1.把Java放到HTML中,JSP应运而生. 2.Servlet本身并没有main()方法,所以必须要有其他Java程序去调用它,这个Java程序就是Web容器(Container).Tomcat就是一个容器. 3.容器能提供什么? 通信支持 -不用再写ServerSocket了 生命周期管理 -容器控制着Servlet的生与死 多线程支持 -容器会自动地为它接收的每一个Servlet请求创建一个新的Java线程 声明方式实现安全 JSP支持 -容器负责把JSP代码翻译成Java 4.容器如何…
session的接口 杀死会话 cookie的性质 cookie的接口 再总结——cookie.session.JSESSIONID的前世今生 简单的定制cookie示例 1.session的接口,配合一些代码来理解. 2.杀死会话——杀死的含义是使session无效化(在JVM中清除??). 立刻杀死,已知方式有两种, 在DD中设定“默认期限” 在代码中对具体session设定“期限”(不过,如果你设置为-1的话,session将永远不会过期,因为这个时间永远到不了,,) 3.cookie的特…
1.让其它组件接管全部请求. package com.example.web; import com.example.model.BeerExpert; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; public class BeerSelect extends HttpServlet { @Override protected void doPost(Http…
重定向与请求分派 “局部”参数——ServletConfig——servlet初始化参数 “全局”参数——ServletContext——上下文初始化参数 Web app的“构造器”——ServletContextListener 实战:如何创建一个全局的dog? 1.重定向与请求分派. resp.sendRedirect("http://www.cnblogs.com/xkxf/"); RequestDispatcher view = req.getRequestDispatcher…
1.servlet的存在就是要为客户服务.servlet的任务就是得到一个用户的请求,再发回一些响应. 请求可能很复杂,也可能很简单,例如,“为我的购物车结账”,这个请求携带了一些重要的数据,你必须知道如何获取这些数据:相应的,响应也可能需要携带一些东西,你必须知道怎样把这些附加信息写入响应. servlet既可以直接输出响应给Web容器,也可以转发请求给JSP 2.Web容器(例如Tomcat)全盘控制着servlet的一生. 用户点击一个URL,这个URL指向一个servlet 容器“看出”…
1.过滤器的执行顺序: <url-pattern> 为第一梯队, <servlet-name> 为第二梯队,梯队内的执行顺序和 DD 里的声明顺序相同. When the container recives a request, it first finds all the filter mappings with a <url-pattern> that matches the request URI. This becomes the first set of fi…
容器如何知道客户是谁?(这并不是HTTP能实现的!IP地址不能唯一的标识用户,另外,非必要不采用HTTPS 继续mark孤傲苍狼的博客,百科全书 cookie——Header——字典——键值对—— 延长cookie的保质期 容器会做cookie的所有工作! 1.先搭建一个简单的测试程序——使用cookie记录用户上一次访问的时间(tomcat+web.xml+servlet <?xml version="1.0" encoding="ISO-8859-1" ?…
搭建简单的测试环境 什么是响应首部 最简单的响应首部——Content-Type 设置响应首部 请求重定向与响应首部 在浏览器中查看Response Headers 1.先快速搭建一个简单的测试环境,以后的内容都将基于下面的这些代码,tomcat webapps:html5+web.xml+servlet <!DOCTYPE html> <html> <body> <form action="MyTest.do" method="ge…
api:https://tomcat.apache.org/tomcat-5.5-doc/servletapi/ 1.GET和POST除去数据大小之外的区别. 安全性问题.使用GET的话,参数数据会出现在浏览器的输入栏之中. 书签问题.GET请求可以建立书签,而POST不能.典型的例子为http://docs.oracle.com/javase/8/docs/api/,对于用户访问的每一个子页面,都没有书签(URL相同). GET不会对服务器产生任何改变,只是“访问”,而POST类似于UPDAT…
一.什么是Web过滤器 Servlet API 很久以前就已成为企业应用开发的基石,而 Servlet 过滤器则是对 J2EE 家族的相对较新的补充. Servlet 过滤器是可插入的 Web 组件,它允许我们实现 Web 应用程序中的预处理和后期处理逻辑.过滤器支持 servlet 和 JSP 页面的基本请求处理功能,比如日志记录.性能.安全.会话处理.XSLT 转换,等等. 过滤器最初是随 Java Servlet 2.3 规范发布的. Servlet 过滤器是什么?Servlet 过滤器是…
1.首先,写一个download.html放至D:\apache-tomcat-7.0.77\webapps\JarDownload-v1. <!DOCTYPE HTML> <html> <body> <form action="JarDownload.do" method="get"> <br /> 提取码:<input type="text" name="passwd…
物理目录结构与虚拟目录结构的差异 WAR 实际上就是 JAR 什么东西应该放在 WEB-INF 文件夹下? <mime-mapping> 相关 <env-entry> 相关 [传统 web.xml 参考] <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi=…
mark. jetbrain tomcat配置:https://www.jetbrains.com/help/idea/2017.1/creating-and-running-your-first-web-application.html PageContext 任何作用域的属性都可以从PageContext获得,甚至不知道属性处在哪个作用域都可以找到!(属性的查找遵循的顺序是:PageContext--> ServletContext--> ..... 不过,为什么这样的东西在servlet…
1.容器根据你所写的JSP生成一个类, /* * Generated by the Jasper component of Apache Tomcat * Version: Apache Tomcat/7.0.77 * Generated at: 2017-06-11 15:47:28 UTC * Note: The last modified time of this file was set to * the last modified time of the source file aft…
1.这是一个非常简单的程序,它看起来是这个样子的: 实际功能就是,每访问该页面一次count数加1,在服务器重启前(JVM重启前),这个次数将持续累加. 2.因为这个程序过于简单,所以我希望可以通过HTML内置Java来完成. 这样做的好处就是:可以把写servlet的事情交给web容器来做. 3.代码如下: package Sample; public class Counter { private static int count; public static int getCount()…
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="json" uri="http://www.atg.com/tagli…
include指令与include动作 1.样例代码 <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page import = "java.io.*,java.util.*" %> <html> <head> <title>Auto Refresh Header Example</titl…
1.EL的英文是Expression Language,译成中文就是“表达式语言”.这是一种给前端程序员使用的脚本语言,EL与Java表达式相比并没有什么“天壤之别”,在后端程序员看来多少有点“多此一举”. 2.然而,我们不能强求每一个前端程序员都去学习JAVA,EL相对于JAVA来说学习成本更低,更容易理解. 3.在以前写的代码上实践测试一下,首先把Scriptlet给禁了,(El也是可以禁的) <?xml version="1.0" encoding="UTF-8&…
1.谈到服务器的时候,可能是指物理主机(硬件),也可能是指Web服务应用(软件). 2.谈到客户的时候,通常指人类用户,或者是浏览器应用,或者两者都包括,浏览器应用做些什么?发送请求.解释HTML和呈现内容. 3.HTTP是TCP/IP的上层协议.HTML仅仅是HTTP响应的一部分. 4.HTTP协议包括许多方法,最常用的是GET和POST.HTTP GET用于请求数据,HTTP POST用于提交表单. 5.发送给服务器的数据称为“消息体”或者“负载”. 6.服务器不做的两件事:动态页面.在服务…
内容来自imooc. 1.什么是JSP动作元素 2.在JSP页面中如何使用Javabeans <jsp:......>表示这是一个JSP动作元素 3.使用JSP动作元素创建JavaBean的实例 <%@ page import="com.po.User" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html&g…
1.会话管理的核心在于“交换会话ID”,来回传递cookie是最简单的方法,容器通过客户端发来的JSSESIONID查找匹配的对话. 2.如果浏览器禁用了cookie,那就意味着浏览器将忽略响应首部中的set-cookie,cookie都设置不了,那么浏览器拿什么信息去“匹配会话”呢? 3.解决这个问题的方法就是URL重写,每次切换页面都把“会话ID”添加到URL的后面,容器利用这个“URL后缀信息”去匹配会话. 客户端<——url重写(类似于set-cookie,只不过形式不同)——服务器 客…
什么是属性? 属性和参数 属性的3个作用域 属性API 属性不好的一面 1.到底什么是属性(Attribute)? 属性就是一个对象,可以被设置(bound,也可以叫绑定)到另外三个servlet API对象ServletContext.HttpSession.HttpServletRequest中.可以把它简单地认为是一个名/值对,名是String.值是object.在实际中,我们并不知道也不关心它具体如何实现,我们关心的只是属性所在的作用域. 2.属性不是参数(Parameter)! 笔记1…
对于session的“CRUD” 会话迁移 别忘了HttpSessionBindingListener Listener示例 1.session的“增”与“删”——session的创建和撤销的调用主体是服务端. 2.session的“改”——由各个servlet执行 3.那么session的“查找”呢?——依赖于客户端发来的JSESSIONID,以及服务端调用getSession() 4.会话迁移 很重要的一句话——“HttpSession只有一个!”不论有多少个VM. 迁移的发生:负载平衡服务…