`
- 浏览:
47701 次
- 性别:
- 来自:
上海
-
- Servlet三个要素:
- 1.必须继承自HttpServlet
- 2.必须实现doGet()或者doPost()
- 3.必须在web.xml中配置Servlet
- <servlet>
- <servlet-name></servlet-name>
-
<servlet-class></servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name></servlet-name>
- <url-pattern></url-pattern>
- </servelt-mapping>
- HttpServeltRrequest:请求对象
- getParameter():获得表单元素的值
- getAttribute():获得request范围中的属性值
- setAttribute():设置reqeust范围中的属性值
- setCharacterEncoding():设置字符编码
- HttpSerletResponse:相应对象
- sendRedirect():外部跳转
- getWriter():获得输出流对象
-
setContentType("text/html;charset=utf-8"):设置相应内容格式和编码
- 四种会话跟踪方式:
- 1.Session
- HttpSessionsession=request.getSession();
-
session.setAttribute("name","zhangsan");
-
session.setAttribute("pwd","aaa");
-
Stringname=(String)session.getAttribute("name");
- 2.cookie:
-
-
Cookiecookie=newCookie("name","zhangsan");
-
- cookie.setMaxAge(24*60*60*60);
-
- response.addCookie(cookie);
-
- Cookie[]cookies=request.getCookies();
-
for(inti=0;i<cookies.length;i++){
- Cookietemp=cookies[i];
- Stringkey=temp.getName();
- Stringvalue=temp.getValue();
- }
- 3.隐藏表单域
-
<inputtype="hidden"name="name"value="zhangsan"/>
-
request.getParameter("name");
- 4.Url重写
- 问号传参
- LoginServlet?username=zhangsan&pwd=123
-
Stringname=request.getParameter("username");
-
Stringpwd=request.getPareameter("pwd");
- 内部跳转:
- LoginServlet
-
request.getRequestDispatcher("index.jsp").forward(request,resposne);
- 外部跳转:
-
response.sendRedirect("index.jsp");
- 内部跳转是一次请求和一次响应
- 外部跳转是两次请求和两次响应
- ServletContext:Servlet上下文对象
- 它是一个公共区域,可以被所有的客户端共享
- setAttribute():向公共区域里放入数据
- getAttribute():从公共区域里取数据
- 二:
- 三:三个标准范围:request,session,ServletContext
- 共同点:都有setAttribute(),getAttribute()
- 区别:范围不同,request<session<servletContext
- 四:四种会话跟踪方式
- 五:服务器上的五大对象
- request,response,servlet,session,servletContext
- Jsp:JavaServerPage
- 页面构成:7种元素
- 1.静态内容:html
- 2.指令:page,include,taglib:
-
<%@指令名属性1="属性值1"属性2="属性值2"%>
- 3.表达式:<%=表达式%>
- 4.Scriptlet<%Java代码%>
- 5.声明:<%!%>:变量和方法
-
6.动作:<jsp:动作名属性="属性值"></jsp:动作名>
- 7.注释:
- 客户端看不到的:<%----%>
- 客户端可以看到的:<!---->
- Jsp的执行过程:
- 1.转译:Jsp--->Servlet
-
2.编译:Servlet---->.class
-
3.执行:.class
- 第一次访问jsp的时候响应速度较慢,后面请求时响应速度快
- 脚本:
- 表达式:<%=%>
- Scriptlet:<%%>
- 声明:<%!%>
- 指令:
- page:language,import,errorPage,isErrorpage
- include:file
- taglib:uri:指定标签库描述符的路径prefix:指定标签的前缀
- 隐式对象:
- 分类:
- 1.输入和输出对象:request(HttpServletRequest),
- response(HttpServletResponse),
-
out(JspWriter),servlet中的out是PrintWriter
- 2.作用域通信对象:pageContext,request,
- session(HttpSession),
- application(ServletContext)
-
3.Servlet对象:page(this),config
- 4.错误对象:exception
- JavaBean:
- 一个标准的JavaBean有三个条件
- 1.共有的类
- 2.具有不带参数的公共的构造方法
-
3.具有set()和get()方法
- 4.私有属性
- Jsp中的标准动作:
- 1.useBean:创建JavaBean的一个实例
-
<jsp:useBeanid="stu"class="com.westaccp.test.Student"scope="page/session/application/request"/>
- 2.setProperty:给JavaBean的属性赋值
-
<jsp:setPropertyname="stu"property="stuName"value="zhangsan"/>
-
<jsp:setPropertyname="stu"property="stuName"param="txtName"/>
- value和param不能同时使用
-
偷懒的方法:<jsp:setPropertyname="stu"property="*"/>
- 这个时候需要注意的是,表单元素的名字必须和JavaBean的属性值
- 一模一样
- 3.getProperty:获得JvaBean的属性值
-
<jsp:getPropertyname="stu"property="stuName"/>
- 4.forward:内部跳转,相当于request.getRequestDispatcher().forward(request,response);
-
<jsp:forwardpage="index.jsp"/>
- 5.include:包含
-
<jsp:includepage="header.jsp"flush="true"/>
- 表达式语言:
- EL:ExpressionLanguage
- 语法格式:${表达式}
- 表示式=运算符+操作数
- 运算符:跟Java比较,多了一个empty,少了一个赋值运算符
-
${empty""}:true
-
${emptynull}:true
- 操作数:
-
-->常量:布尔型(true/false),整型,浮点型,字符串(可以用'',还可以用""),Null
- -->变量:
- 1.指的是放在四个标准范围里的属性(page,request,session,application)
- 2.在编准范围内的搜索顺序:page-->request--->session--->application
- 3.怎么取得变量值:点运算符.,还以用[]
- <%
-
request.setAttribute("name","lisi");
- %>
- ${requestScope.name}
- 或者
-
${requestScope["name"]}
- -->隐式对象
- 1.pageContext:通过它可以访问request,session,servletContext
- 2.跟范围由关的:pageScope,requestScope,sessionScope,applicationScope
- 3.跟输入有关的:param,paramValues
- 4.其他的:header,cookie,headervalues,
- EL表达式适用的场合:
- 1.可以在静态文本中使用
- 2.与自定义标签结合使用
- 3.和JavaBean结合使用
-
<jsp:userBeanid="stu"class="com.westaccp.test.Student"scope="session"/>
-
<jsp:setPropertyname="stu"property="stuName"value="hello"/>
- ${stu.stuName}
- 自定义标签:
- 1.标签处理程序实现
- --->实现:继承自BodyTagSupport或者TagSupport
- 一般会重写doStartTag(),doEndTag(),doAfterBody()
- --->描述:在标签库描述符文件中描述(.tld)
- <taglib>
- <tlib-version>1.0</tlib-version>
- <jsp-version>2.0</jsp-version>
-
<short-name>simpletag</short-name>
- <tag>
- <name>showbody</name>
-
<tag-class>com.westaccp.test.ShowBodyTag</tag-class>
- <body-content>empty/jsp</body-content>
- <attribute>
- <name>color</name>
- </attribute>
- </tag>
- </taglib>
-
--->使用:<%@tagliburi="WEB-INF/mytag.tld"prefix="my"%>
- <my:showbody/>
- 2.标签文件
- --->实现和描述
- 在.tag文件中实现
-
设置主体内容:<%@body-content="empty/scriptless"%>
-
设置属性:<%@attributename="name"required="true"rtexprvalue="true"%>
-
有主体内容:<jsp:doBodyscope="session"var="theBody"/>
- <%
-
Stringbody=(String)session.getAttribute("theBody");
- %>
- --->使用
- WEB-INF/tags/sayhello.tag
-
<%@taglibtagdir="/WEB-INF/tags/"prefix="you"%>
- <you:sayhello/>
- 标准标签库:
- 1.核心标签库
- -->通用:
-
set:<c:setvar=""value=""scope=""/>
-
out:<c:outvalue=""/>
-
remove:<c:removevar=""scope=""/>
- -->条件:
-
if:<c:iftest="">.....</c:if>
- choose:<c:choose>
-
<c:whentest="">...</c:when>
-
<c:whentest="">...</c:when>
-
<c:whentest="">...</c:when>
- .....
- <c:otherwise>...</otherwise>
- </c:choose>
- -->迭代:
-
forEach:<forEachvar=""items=""varStatus=""begin=""end="">
-
foTokens:<foTodensvar=""items=""delim=",;|"></foTodens>
- Java,C#;SQL|C
- 2.I18N与格式化标签库
- -->setLocale:设置本地区域
- -->bundle:设置资源包
- -->setBundle:设置资源包
- -->message:输出消息
- 3.SQL标签库
- -->setDataSource:设置数据源,用于获得与数据库的连接
- -->query:执行查询
- -->update:执行增,删,改
- -->transaction:事务
- -->param:参数
- 4.XML标签库
- 过滤器:
- 生命周期:
- 1.实例华:
- 2.初始化:init()
- 3.过滤:doFilter()
- 4.销毁:destroy()
- 5.不可用
- 配置:
- <filter>
- <filter-name></filter-name>
-
<filter-class></filter-class>
- </filter>
- <filter-mapping>
- <filter-name></filter-name>
- <url-pattern></url-pattern>
- </filter-mapping>
- 几个重要的接口:
- 1.Filter:init(),doFilter(),destroy()
- 2.FilterChain:doFilter(request,response)
- 3.FilterConfig:getFilterName(),getInitParameter(),
- 过滤器链:--->1--->2--->3--->Servlet请求
- <----1<---2<---3<---响应
- MvC设计模式
- 1.ModelI:jsp+JavaBean
- 2.ModelII:jsp+Servlet+JavaBean
- jsp---view
- servlet---control
- javabean---model
- MVC:
- M--Model:模型:访问后台数据库
- V--view:视图:展示
- C--control:控制器:控制程序流程
- ModelII和MVC的关系:
- MVC是一种设计模式,ModelII它是MVC的一种具体的实现
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
此篇文档是对jsp更好的了解好学习应用!
jsp基础速成讲解 Servlet三个要素 四种会话跟踪方式 内部跳转 外部跳转 Jsp的执行过程
### JSP基础速成精华知识点解析 #### 一、Servlet基础 Servlet是Java Web开发中的一个核心组件,它主要用于处理客户端请求并生成响应。在Java Web应用中,Servlet充当了一个重要的角色,它不仅可以处理HTTP请求,还...
### JSP基础概念 1. **JSP页面结构**:一个JSP页面由静态HTML和嵌入的Java代码组成,这些Java代码可以是脚本元素(scriptlets)、声明、表达式或指令。 2. **脚本元素(Scriptlets)**:在`<% %>`之间编写,用于...
一步步教你学jsp.连接数据库,上传下载,实例讲解 ,全在里面了。
**JSP基础概念** 1. **页面结构**:JSP页面由静态内容(HTML、CSS、JavaScript)和动态内容(Java代码)组成。静态内容负责页面的布局和交互,动态内容则处理数据和逻辑。 2. **指令元素**:包括`<%@ page %>`, `...
JSP 速成教程(PDG) 介绍JSP基础及高级特性
**JSP(Java Server ..."JSP速成教程(PDG)"这份资料应该包含了丰富的实例和详细讲解,可以帮助你更好地理解和应用这些概念。在学习过程中,结合实际项目实践,理论与实践相结合,你会更快地成长为一名JSP编程高手。
**JSP(Java Server Pages)** 是一种动态网页技术,由Sun Microsystems开发,现在由Oracle公司维护。...本速成教程将帮助你快速掌握JSP的核心...结合这些资料,你将能够快速提升JSP技能,为你的Web开发事业打下坚实基础。
JSP基础 JSP的核心在于其**标记语言**,它包括内置对象、指令和脚本元素。内置对象如`request`、`response`、`session`和`application`提供了与HTTP请求交互的能力。例如,`request`对象用于获取客户端的请求参数...
**JSP的基础概念:** 1. **JSP页面结构**:一个JSP页面由静态内容(HTML、CSS、JavaScript)和动态内容(Java代码)组成。动态内容以`<%...%>`、`<%=...%>`、`!...%>`等标签形式存在。 2. **指令(Directives)**:...
**JSP(Java Server Pages)**是Java平台上的一种动态网页技术,它允许开发人员将静态HTML...通过深入学习本教程,你将能够理解JSP的基本原理,掌握创建动态Web页面所需的技能,为进一步探索Java Web开发打下坚实基础。
通过学习这个"JSP速成教程",你可以掌握如何创建、运行和调试JSP页面,理解JSP与Servlet的关系,以及如何利用内置对象和JSP动作进行数据操作。随着深入学习,你还可以了解MVC设计模式,结合Servlet和JSP实现更复杂的...