![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JSP
文章平均质量分 60
mark_to_win
http://www.mark-to-win.com 安卓,java,jquery,ios,spring,技术副总,导师,领导项目架构,微信号: MarkToWin_China, qq: 2115860679,
展开
-
什么是servlet?
马克-to-win:在讲授Servlet之前,我们先回顾一下,我们在讲 第九章:网络编程(Socket)那章时,留过的一个作业:课外作业:6)请做一个Web服务器,客户端能打印出一个html文件。马克-to-win:在 讲Socket网络编程时,在一次请求(request)响应(response)交互过程中,作为基本功能,服务器可以从客户端获取数据,之后再向客户 端写回去数据。这之间只...原创 2018-11-27 09:23:07 · 247 阅读 · 0 评论 -
用init-param如何从web.xml中获得参数?
1.用init-param获取:例:1.1.1ServletHello1.java:package com;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import ...原创 2018-12-04 10:47:52 · 1346 阅读 · 0 评论 -
如何用ServletConfig从init-param获取参数?
2.用ServletConfig从init-param获取:就单纯获取init-param而言,上一种和这一种方法一样。不过ServletConfig还有很多其他的功能。见例子。例:1.2.1ServletHello1.java:package com;import java.io.IOException;import java.io.PrintWriter;import jav...原创 2018-12-04 11:06:25 · 911 阅读 · 0 评论 -
如何从context-param获取参数?
3.从context-param获取:马克-to-win:用context-param存放的参数,本个web应用中的任何servlet,jsp都可以获得。例:1.3.1ServletHello1.java:package com;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.Se...原创 2018-12-04 13:34:36 · 1161 阅读 · 0 评论 -
如何从env-entry获取参数?
4.从env-entry获取:马克-to-win:用env-entry存放的参数,本个web应用中的任何servlet,jsp都可以获得。和context-param相比,env-entry存放的参数不止为String类型。下面的comp是component的意思。例:1.4.1ServletHello1.java:package com;import java.io.IOExc...原创 2018-12-04 13:35:13 · 434 阅读 · 0 评论 -
如何用Synchronied解决Servlet多线程安全问题?
1.用Synchronied解决多线程安全问题:马克-to-win:我们先铺垫Servlet的多线程基础知识。到现在为止,我们所接触到的Servlet都是这样的:第一个人访问Servlet的时候,Servlet会被实例化。之后的人再访问这个Servlet的时候,这个Servlet就不再被实例化了,而是采取线程的模式。用每一个由这个servlet而来的线程来应答来请求的客户。这样的话,Servl...原创 2018-12-04 16:14:34 · 201 阅读 · 0 评论 -
如何用SingleThreadModel解决多线程安全问题
2.用SingleThreadModel解决多线程安全问题:前面介绍的都是普通的Servlet。对于每一个用户请求,那些Servlet都会用线程的方式给予应答。这样比较节省系统的资源。Sun公司也给出了另外一种方法,就是这节要介绍的SingleThreadModel的方法。当implement这个接口以后,你的Servlet就变成了另外一种模式工作。即,每一个新用户的请求,都会生成一个新的Se...原创 2018-12-04 16:22:19 · 253 阅读 · 0 评论 -
ServletRequest.getRequestDispatcher和ServletContext.getRequestDispatcher的区别。
本节介绍以下几种跳转方法。1.用RequestDispatcher跳转:马克-to-win: javax.servlet.RequestDispatcher是Sun公司编写的一个Interface,顾名思义,它可以把用户请求"a资源"的request派遣(dispatch)到"b资源"上,从而实现跳转。(本来人家要访问'a资源",你的程序却让人家自动的跳转到"b资源"上。) 注意:Reques...原创 2018-12-04 16:20:14 · 2795 阅读 · 0 评论 -
如何用setHeader("refresh"...实现跳转?
2.用setHeader("refresh"...跳转:马克-to-win:使用response对象的setHeader()方法可以实现在某个时间点跳转到某个页面的作用。比如response.setHeader("refresh",60);可以实现六十秒以后,又一次访问当前页面。而response.setHeader("refresh","3;URL=http://localhost:8080/...原创 2018-12-04 16:24:17 · 2894 阅读 · 0 评论 -
Servlet和JDBC如何配合使用请给一个例子?
1.Servlet与JDBC:马克-to-win:回去参考我java部分的jdbc部分的知识。(我把那里的例子搬到了这里)在那里,我们提到最实用的单态模式的数据库连接池技术。这里需要注意的是,对于每个客户,tomcat都会用一个Servlet线程去应答。为了做到线程安全,在获取连接的方法上getConnection(),应该加上Synchronized的关键字。如果对这部分知识感到困惑,可以参考我...原创 2018-12-05 09:12:41 · 651 阅读 · 0 评论 -
Referer是怎么用的,在Servlet当中请给出一个例子?
3.Referer:马克-to-win:我要是帮你卖出产品。我是不是不能白劳动?是不是该拿提成?对,没错。用户经过我的网站跳到你的网站上,买了你的东西,应该给我提成。这件事情用Servlet如何实现呢?下面就给出一个例子。如果经过AAA.html跳转到我们的Servlet,我们就打印“给他提成”。如果直接访问我们的Servlet,而没有经过任何其他页面跳转过来的。我们就打印“不用给任何人提成...原创 2018-12-05 09:12:29 · 420 阅读 · 0 评论 -
Servlet中请给出一个Cookie的增删改查的例子。
2.Servlet与Cookie:马克-to-win:Cookie有点像Session。Session是把键值对存在服务器端,一个Servlet存值 ,另外一个Servlet可以取值。Cookie也是以键值对的形式用于读取,不过是保存在客户端 浏览器的某个文本里面。取时,也要从这台机器的这个浏览器上去取。像Session一样,你 也可以设置过期时间,比如“一年”。和Session不同的是:用户可以...原创 2018-12-05 09:12:52 · 202 阅读 · 0 评论 -
servlet的底层实现原理是什么?
1) 首先Sun公司编写了一系列Class,比如javax.servlet.http.HttpServlet,你编写的Servlet需要利用或继承它 们。这一系列Class都放在servlet-api.jar这个文件当中。这样底层和复杂机器环境比如网络或Tomcat打交道的工作,Servlet 编写者就不用考虑了!servlet只需要考虑一段时期(Session)的相关的请求(Request)响应...原创 2018-11-27 09:39:49 · 1892 阅读 · 0 评论 -
如何不用eclipse帮忙徒手做一个最简单的webapp,在tomcat下?
0.预习实验(必看,否则后面看不懂)我们先不用eclipse帮忙徒手做一个最简单的webapp,有利于我们理解整个概念。按照我的机器,安装tomcat以后,打开一个cmd控制台,到C:\Program Files\Apache Software Foundation\apache-tomcat-7.0.82\bin目录下,startup.bat,启动。做一个web应用的文件夹,里面有个最简单...原创 2018-11-27 09:53:18 · 549 阅读 · 0 评论 -
做Servlet之前eclipse如何配置?
1.先期的eclipse的配置1)配置eclipse的jdk的方法:window/preferences(偏好) /java/Compiler/Compiler compliance level:我设置的是1.6(你最好跟我一样,【新手可互略这段的解释】1)这里设置的是eclipse中所有项目的,想设置某个单独项目的compiler,可设置它的project facet中的java com...原创 2018-11-27 10:17:50 · 298 阅读 · 0 评论 -
jsp被转成servlet后eclipse把这个servlet放在哪个目录下呢?
马 克-to-win:对于学有余力的同学,我最后再延伸讲一点。Eclipse运行jsp的时候,先把它变成一个servlet(发生在第一次访问jsp时)。 eclipse把这个servlet放在哪个目录下呢?我们可以按照下面的步骤找到它:右击项目/Run as/Run Configuration找到你的Tomcat Server/Argument其中找到deploy这个参数,它清清楚楚的标明,你的S...原创 2018-12-06 08:48:15 · 1939 阅读 · 0 评论 -
sun公司当时为什么要发明jsp技术?jsp技术有什么意义?
马克-to-win:Servlet的部分知识终于学完了,但Servlet有一个问题:当我们用Servlet往回写html片段时,Servlet的 out.println能把人累死,不知大家发现了没有。反正Sun公司的人发现了这个问题,于是sun公司推出jsp技术,jsp就等于Servlet +html。你的html再也不用通过Servlet的out.println打印出来了,你完全可以直接写htm...原创 2018-12-05 09:33:46 · 2191 阅读 · 0 评论 -
脚本元素都包括哪些格式?都有什么内容?
1)脚本元素有三种格式 i)表达式:比如下面例子的:<%=++accessCount%>:转换代码插入到转成的Servlet的service方法。 ii)Scriptlet:比如下面例子的: <% if (called() < 0.5) { %> 转换代码插入到转成的Servlet的service方法。 iii)声明:比如下面例子的:<%!p...原创 2018-12-05 09:37:22 · 3185 阅读 · 0 评论 -
在eclipse当中如何做一个jsp的helloWorld?
1.jsp的helloWorld:做jsp的实验步骤非常简单。在eclipse当中,右键点击代表你WebModule的根目录的WebContent。new/jsp 即可。例 1.1<%@ page contentType="text/html; charset=GBK"%><html><%!private int accessCount = 0;%><%!...原创 2018-12-05 09:38:52 · 713 阅读 · 0 评论 -
Servlet jsp当中给出一个doPost例子。
3.doGet,doPost和service的用法1)doPost的实例马克-to-win:我们看到了doGet的用法。这节,我们看看doPost的用法。在Eclipse下,点击你项目名称左边的小十字符号,找到WebContent,右击它。New/HTML File:eclipse会为我们生成一个空的html。我们再加入一些代码,成为:例:3.3.1hello.html:&...原创 2018-11-28 09:14:50 · 714 阅读 · 0 评论 -
HttpServlet的Service方法到底是怎么回事?
3)HttpServlet的Service方法到底是怎么回事?马克-to-win:谈到doGet,很多同学心中可能有疑问,为什么html的用户的GET的请求,会被Servlet的doGet方法处理呢?这就谈到了HttpServlet的Service方法。它的功能就是调用与HTTP请求的方法相对应的do功能。例如,如果HTTP请求方法为GET,则调用doGet() 。这样作为Servlet编写...原创 2018-11-28 09:29:01 · 2530 阅读 · 1 评论 -
讲讲session是怎么工作的,session的用法?
6.session的用法马克-to-win:到现在为止,我们学会了一次单独的请求和响应之间传递参数。但是如何跨越几次请求响应之间传递参数呢?比如我以马克的身份登录,这是 一次请求响应。之后买书又是一次请求响应。如何买书的时候还记得买书的人是马克,而不是张三呢?马克这个参数存在哪呢?这是跨越两次访问。Sun公司为我 们提供了HttpSession这个接口。HttpSession session ...原创 2018-11-28 10:17:34 · 564 阅读 · 0 评论 -
pageContext,Request,Session,servletContext,类变量,局部变量六个范围的区别?
pageContext,Request,Session,servletContext,类变量,局部变量六个范围的区别:马克-to-win:1) Request: 保存的键值仅在同一个request范围中可以取回来。它的范围比Session和servletContext小,缺点是;因范围小无法取,比如访问了两次,第二次无法 取回第一次的,就只能想办法,比如用Session。优点:和Session和s...原创 2018-12-06 08:52:44 · 392 阅读 · 0 评论 -
page指令的用法,重要属性是什么?
1.page指令(例如<%@ page...):下面列举一些重要常用属性:i) import="package.class",或者import="package.class1,...,package.classN": 用于指定导入哪些包(其实jsp就是一个servlet),例如:<%@ page import="java.util.*" %>ii)isThreadSafe="true|...原创 2018-12-07 08:40:12 · 4172 阅读 · 0 评论 -
jsp:useBean动作到底有什么意义?
1.jsp:useBean动作:马 克-to-win:java bean简单来说很像过去的类,但是不必有main方法,但里面的将被jsp调用的方法必须是public型的。当把一大堆可被人调用的公共方法,放在一 个黑匣子当中时,你觉得这个黑匣子像个“豆”吗?bean的中文翻译就是“豆”。相比servlet,jsp的弱项就在于:当需要写大量业务代码时。现在 好了,有了useBean这个动作,jsp一下...原创 2018-12-06 09:15:16 · 1658 阅读 · 0 评论 -
jsp:setProperty和jsp:getProperty动作到底怎么用举例?
2.jsp:setProperty和jsp:getProperty动作:jsp:useBean动作获得Bean实例之后,要设置Bean的属性可以通过jsp:setProperty动作进行。读取Bean属性可以通过使用jsp:getProperty动作。例 4.2.1<html><head></head><body><form action="j...原创 2018-12-06 09:16:40 · 993 阅读 · 0 评论 -
jsp:forward动作怎么用请举例?
3.jsp:forward动作:jsp:forward动作是跳转到另外的页面。例 4.3.1jsp1.jsp:<jsp:forward page="jsp2.jsp"> <jsp:param name="name" value="mark-to-win" /></jsp:forward>jsp2.jsp<body> name is <...原创 2018-12-06 09:17:55 · 1882 阅读 · 0 评论 -
jsp:forward相当于requestDispatcher还是sendRedirect呢?
jsp:forward相当于requestDispatcher还是sendRedirect呢?下面的实验给出答案。例 4.3.2:<%@ page contentType="text/html; charset=GBK"%><% request.setAttribute("name","马克-to-win"); %><jsp:forward page="jsp2.js...原创 2018-12-06 09:22:24 · 325 阅读 · 0 评论 -
jsp隐式对象都包括什么?包括request、response、out、session、application、config、pageContext。
编写jsp时,Sun公司提供了便利,request、response、out、session、application、config、pageContext(代表本页)可以直接用,叫做隐式对象。想想jsp会被转成一个Servlet,这些对象就自然会用了。例 2.1a.html:<html><body bgcolor="red"><form action="jsp1.js...原创 2018-12-06 08:57:12 · 340 阅读 · 0 评论 -
pageContext和局部变量的区别?
4) pageContext:保存的键值仅在本个页面有效。在未来学习Taglib过程当中,将发挥巨大作用。类变量被所有用户(浏览器)只在这一页时共享(例如例1.1),而pageContext 被某个用户(浏览器)只在这一页时才有。pageContext范围比类变量小,和局部变量是一样的,但局部变量可以在非service的方法中用,而 pageContext只能在service方法中用。 见例...原创 2018-12-06 08:59:49 · 158 阅读 · 0 评论 -
JSP动作包括:include,:useBean,:forward,:plugin,:setProperty,:getProperty
利用JSP动作可以包含进来文件(jsp:include)、调用JavaBean组件(jsp:useBean)、 跳转到另外的页面(jsp:forward)、调用Java插件(jsp:plugin)、读取属性jsp:setProperty和jsp:getProperty等。更多请看:https://blog.csdn.net/qq_44594371/article/details/1031678...原创 2018-12-06 09:12:45 · 211 阅读 · 0 评论 -
jsp如何包含一个servlet?请举一个例子?
想要包含一个servlet得用下列的方法,it is alleged that include file="servlet1" can not work。例 4.4.2<html><body> <jsp:include page="/Cookie/DeleteCookie" flush="true" /></body></html>...原创 2018-12-06 09:27:33 · 515 阅读 · 0 评论 -
jsp:plugin动作如何调用一个Applet?
5.jsp:plugin动作:马 克-to-win:jsp:plugin可以调用Java插件。Applet和Servlet对应,是浏览器里运行的一项技术。可以画图,可以运用算法, 非常棒。比如可以通过Servlet把数据从服务器返回到客户端,之后绘画在浏览器当中。但由于浏览器对它的支持程度不一样,限制了它的使用。你不希望自 己辛辛苦苦编完的程序,用户在用浏览器上网时,运行不了吧!所以Applet给...原创 2018-12-07 08:39:08 · 335 阅读 · 1 评论 -
jsp如何像Servlet生命周期一样调用jspInit和jspDestroy?
jsp也有自己的生命周期和Servlet一样:<%@ page contentType="text/html; charset=GBK"%><html><body> <h1>JSP</h1> <%! public void jspInit() { System.out.println("init");...原创 2018-12-07 08:38:53 · 306 阅读 · 0 评论 -
请做一个Filter过滤器的hello world最简单的一个例子
1)helloWorld:马 克-to-win:请同学们先做本部分的Filter的hello world实验。之后根据实验,再返回来学习我接下来的这段话。由于在web.xml当中,我们Filter的url-pattern是/*,所以当用户 访问根目录下的任何目标文件时,我们这个Filter都会起作用。当发现用户要访问home.jsp时,MarkToWinFilter中的 doFilter方法会被运...原创 2018-12-13 09:02:35 · 319 阅读 · 0 评论 -
Filter执行过程是什么?
3)Filter执行的顺序马 克-to-win:根据上面的说明“Filter的拦截的工作过程”的图,我们对Filter的Helloworld例子做一个小小的扩展(增加了一个 MarkToWinFilter2,代码和MarkToWinFilter几乎一样),来说明Filter的顺序,结论:filter-mapping在Web.xml中的顺序决定了Filter执行的顺序。 例 1.2.3Web.xm...原创 2018-12-13 09:02:43 · 644 阅读 · 0 评论 -
Filter的生命周期是怎么样的?
2)Filter的生命周期 马 克-to-win:根据以上的HelloWorld实验,我们也顺便提一下Filter的生命周期。因为有了Servlet生命周期的学习经历,我相信 Filter的生命周期应该比较好理解。不像Servlet那样,当第一个用户访问Servlet时,Servlet才会被实例化,接着马上调用init 的方法。Filter的实例化和init方法调用过程,发生在你的web应用的...原创 2018-12-13 09:02:52 · 210 阅读 · 1 评论 -
Filter与Session配合的简单过渡例子
4)Filter与Session配合的简单过渡例子马克-to-win:因为下一个登录例子太难,我先给出一个过度的例子,便于大家理解下一个例子。这里也有个轶事,当我在做下一个登 录的例子时,发现一个非常隐晦的bug。那就是,我本应写成:response.sendRedirect("http: //localhost:8080/ServletHello/home.jsp")。但我实际写成了:resp...原创 2018-12-13 09:02:59 · 205 阅读 · 0 评论 -
jsp:include动作和include指令的区别,请举例?
4.jsp:include动作和<%@ include的区别:马克-to-win:include指令把被包含的文件揉进来一起编译。include动作不是。它是在请求时,将输出结果包含进来。例 4.4.1jsp2.jsp:<%! String name="mark-to-win"; %>jsp1.jsp:<html><body> <%@ inclu...原创 2018-12-07 08:39:25 · 684 阅读 · 0 评论 -
Filter的线程安全问题
6)Filter的线程安全问题:马 克-to-win:和Servlet一样,为了提高性能,Filter也采取多线程模式。即:每一个线程来应答一个用户浏览器,而且这个线程和用户要访问 的目标Servlet的线程是同一个线程。说得更准确一点,当用户访问某个资源需要经过过滤器时,服务器中一个线程为了应答这个客户请求,先调用过滤器中 的doFilter方法,再根据是否有chain.doFilter的指令,...原创 2018-12-13 10:30:08 · 2462 阅读 · 0 评论