JSPServlet总结
- 格式:docx
- 大小:81.25 KB
- 文档页数:23
java web笔记JavaWeb是一种基于Java语言开发的Web应用程序开发技术,其主要模块包括Servlet、JSP、JavaBean以及Java EE(Enterprise Edition)等。
1. ServletServlet是一种Java程序,用于处理HTTP请求和响应。
它可以接收来自客户端的HTTP请求并生成HTTP响应。
Servlet实现了javax.servlet.Servlet接口,可以在Web容器中运行。
Servlet可以通过doGet()、doPost()等方法处理HTTP请求,通过request对象获取请求参数,通过response对象生成响应内容。
Servlet还可以通过init()方法进行初始化,通过destroy()方法进行终止。
2. JSPJSP是Java Server Pages的缩写,它是一种基于HTML和Java 的Web开发技术。
JSP可以将Java代码嵌入到HTML页面中,以便动态生成Web页面。
JSP页面可以使用JavaBean来处理业务逻辑,在JSP中使用标签库可以简化开发,如JSTL标签库、EL表达式等。
3. JavaBeanJavaBean是一种Java类,它封装了应用程序中的数据和业务逻辑。
JavaBean通常包含get/set方法,可以通过这些方法访问和修改JavaBean中的属性。
JavaBean的作用是将数据和业务逻辑分离,使得应用程序具有更高的可维护性和可重用性。
4. Java EEJava EE是Java平台的企业版,它提供了一系列API和规范,用于开发大型分布式Web应用程序。
Java EE包含了Servlet、JSP、JavaBean等技术,还提供了EJB(Enterprise Java Bean)、JPA(Java Persistence API)、JMS(Java Message Service)等高级技术。
Java EE还包含了Web容器和应用服务器,如Tomcat、WebLogic、WebSphere等,这些容器可以运行Java Web程序,提供了对Java Web 程序的支持和管理。
Jsp和Servlet关系为什么会出现Jsp?其实对于服务器来说它只认识Servlet,我们完全可以在Servlet⽤resp.getWriter().write("");画出⽹页的界⾯,但是仅仅⼀个很简单的界⾯就要重复的书写resp.getWriter().write(""),并且这还没有加上js、css以及jquery。
但是我们在Servlet写的是java代码可以有逻辑的判断,但是在html、css中⽆法加⼊逻辑导致页⾯是静态的。
为了解决这⼀问题出现了jsp,在jsp中可以书写Java代码、js代码、html代码等。
我们都知道浏览器发送请求到服务器,服务器通过解析其中Servlet的别名找到对应的Servlet并执⾏其中的service⽅法做出处理和响应,那么对于服务器来说它只认识Servlet,那么我们编辑的Jsp到底是如何被服务器识别的?实际上服务器还是将.jsp当作Servlet的别名在你局部配置下的web.xml找有没有对应的Servlet,如果没有找到对应的Servlet就去Tomcat的公共配置下的web.xml(Tomcat安装⽬录conf下的web.xml)找对应的Servlet。
会找到如下内容:org.apache.jasper.servlet.JspServlet将对应的jsp⽂件转为Servlet。
那么转的Servlet在什么地⽅呢?打开Tomcat下的work⽂件夹⼀直点到:找你正在运⾏的项⽬的jsp测试的jsp:<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Insert title here</title></head><body>666</body></html> 被编译好的Java⽂件:/** Generated by the Jasper component of Apache Tomcat* Version: Apache Tomcat/8.5.46* Generated at: 2019-10-16 09:05:10 UTC* Note: The last modified time of this file was set to* the last modified time of the source file after* generation to assist with modification tracking.*/package org.apache.jsp;import javax.servlet.*;import javax.servlet.http.*;import javax.servlet.jsp.*;public final class index_jsp extends org.apache.jasper.runtime.HttpJspBaseimplements org.apache.jasper.runtime.JspSourceDependent,org.apache.jasper.runtime.JspSourceImports {private static final javax.servlet.jsp.JspFactory _jspxFactory =javax.servlet.jsp.JspFactory.getDefaultFactory();private static java.util.Map<ng.String,ng.Long> _jspx_dependants;private static final java.util.Set<ng.String> _jspx_imports_packages;private static final java.util.Set<ng.String> _jspx_imports_classes;static {_jspx_imports_packages = new java.util.HashSet<>();_jspx_imports_packages.add("javax.servlet");_jspx_imports_packages.add("javax.servlet.http");_jspx_imports_packages.add("javax.servlet.jsp");_jspx_imports_classes = null;}private volatile javax.el.ExpressionFactory _el_expressionfactory;private volatile org.apache.tomcat.InstanceManager _jsp_instancemanager;public java.util.Map<ng.String,ng.Long> getDependants() {return _jspx_dependants;}public java.util.Set<ng.String> getPackageImports() {return _jspx_imports_packages;}public java.util.Set<ng.String> getClassImports() {return _jspx_imports_classes;}public javax.el.ExpressionFactory _jsp_getExpressionFactory() {if (_el_expressionfactory == null) {synchronized (this) {if (_el_expressionfactory == null) {_el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();}}}return _el_expressionfactory;}public org.apache.tomcat.InstanceManager _jsp_getInstanceManager() {if (_jsp_instancemanager == null) {synchronized (this) {if (_jsp_instancemanager == null) {_jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig());}}}return _jsp_instancemanager;}public void _jspInit() {}public void _jspDestroy() {}public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)throws java.io.IOException, javax.servlet.ServletException {final ng.String _jspx_method = request.getMethod();if (!"GET".equals(_jspx_method) && !"POST".equals(_jspx_method) && !"HEAD".equals(_jspx_method) && !javax.servlet.DispatcherType.ERROR.equals(request. response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "JSPs only permit GET POST or HEAD");return;}final javax.servlet.jsp.PageContext pageContext;javax.servlet.http.HttpSession session = null;final javax.servlet.ServletContext application;final javax.servlet.ServletConfig config;javax.servlet.jsp.JspWriter out = null;final ng.Object page = this;javax.servlet.jsp.JspWriter _jspx_out = null;javax.servlet.jsp.PageContext _jspx_page_context = null;try {response.setContentType("text/html; charset=ISO-8859-1");pageContext = _jspxFactory.getPageContext(this, request, response,null, true, 8192, true);_jspx_page_context = pageContext;application = pageContext.getServletContext();config = pageContext.getServletConfig();session = pageContext.getSession();out = pageContext.getOut();_jspx_out = out;out.write("\r\n");out.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"/TR/html4/loose.dtd\">\r\n");out.write("<html>\r\n");out.write("<head>\r\n");out.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">\r\n");out.write("<title>Insert title here</title>\r\n");out.write("</head>\r\n");out.write("<body>\r\n");out.write("666\r\n");out.write("</body>\r\n");out.write("</html>");} catch (ng.Throwable t) {if (!(t instanceof javax.servlet.jsp.SkipPageException)){out = _jspx_out;if (out != null && out.getBufferSize() != 0)try {if (response.isCommitted()) {out.flush();} else {out.clearBuffer();}} catch (java.io.IOException e) {}if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);else throw new ServletException(t);}} finally {_jspxFactory.releasePageContext(_jspx_page_context);}}}但是我们发现这个类并没有继承HttpServlet⽽是继承了org.apache.jasper.runtime.HttpJspBase并且⾥⾯也没有service⽅法⽽是_jspservice⽅法。
javaee期末总结JavaEE(Java Platform, Enterprise Edition)是面向企业级应用开发的一套Java技术规范和标准。
本文将对我在学习和实践JavaEE过程中的收获和感悟进行总结。
一、项目实践经验在学习JavaEE的过程中,我参与了一个实际的项目开发,其中遇到了一些挑战,但也获得了宝贵的经验。
首先,在项目开发之初,我们进行需求分析和系统设计。
通过使用UML工具进行用例建模和类图设计,我们明确了系统的功能和架构。
这个阶段对于项目的后续开发起到了重要的指导作用。
其次,我们使用了MVC(Model-View-Controller)的架构模式来组织代码。
通过将业务逻辑、数据模型和用户界面分离,我们实现了更好的代码可维护性和可扩展性。
这让我意识到良好的架构设计对于项目的成功非常重要。
在项目实施阶段,我们采用了敏捷开发的方法,每周进行迭代。
这样的开发方式使得项目的进展更加可控,同时也使得我们能够更及时地响应需求的变化。
二、技术的掌握与应用在JavaEE学习过程中,我学习了许多核心的技术和框架,以下是我在项目开发中运用的几个技术的简要介绍。
1. ServletServlet是JavaEE的核心组件之一,它负责接收和响应来自客户端的请求。
通过继承HttpServlet类,我们可以编写出具有各种功能的Servlet,并通过配置部署到Web容器中。
2. JSPJSP(JavaServer Pages)是一种在服务器端生成动态网页的技术。
通过在JSP页面中嵌入Java代码,我们可以实现动态数据的展示和处理。
在项目中,我使用JSP来展示数据,并结合EL表达式和JSTL标签库来简化页面开发工作。
3. JDBCJDBC(Java Database Connectivity)是Java访问数据库的标准API。
在项目中,我使用JDBC来连接数据库,并执行SQL语句进行数据的增删改查操作。
通过使用连接池技术,我们可以提高数据库的访问效率。
关于Servlet.service()forservletjspthrewexception的问题关于jsp页⾯在初始化的时候遇到的Servlet.service()抛出的异常,根据我个⼈⼯作之中遇到的做了以下的总结:问题⼀这个问题是因为我在pom⽂件中配置了: <dependency> <groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jsp-api</artifactId><version>2.0</version></dependency>因为jar包的原因,哎,把jsp-api的那个注释掉就好了。
问题⼆这个问题还是因为我在pom⽂件中配置了: <dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.2</version></dependency>还是因为jar包的原因,解决⽅法还是把jsp-api注释掉。
jsp课程总结:课程jsp 课程总结范文课程总结怎么写课程总结心得体会篇一:JSP课程总结JSP课程总结1006010101 计算机1班董楠楠在学习这门课之前,JSP对于我来说是一个全新的领域,包括其基础的HTML静态网页的相关知识,数据库方面,服务器的作用都不了解。
一开始难免的失意和紧张,觉得这门课对我来说是一种挑战。
经过一个学期的课程学习以及近期的基于JSP的网盘课程设计,我对这门课终于有了初步的了解,虽然掌握得很肤浅,但内心很兴奋,很欣喜,新的语言入门很难,但我相信在日后的学习中,我会有一定的突破。
JSP的全称是Java Server Pages,它是一种动态网页技术。
我们需要配置的坏境有JDK,Tomcat,还要用到Myeclips这一基础的编程工具。
在学习JSP之前,由于没有网页编程的基础,便学习了HTML这种文本标记语言,自己试着去做简单的静态网站。
后来学做JSP动态网站时,就涉及到了多方面的知识,JSP内部对象及内部对象所涉及的方法,JSP与数据库连接,如何去引用数据库。
这门课更是巩固了JAVA这一基础编程语言,要求对JAVA掌握的要透彻,每门语言要学扎实,深入理解,都要花费很大的功夫,不是容易的事情。
通过以上知识的学习,对开发简单的动态网页有(转载于: 写论文网:jsp课程总结)了些许的眉目,又进一步加深了对JSP的了解。
比如我们此次的课设,设计一个网络硬盘,用户可以再上面上传、下载资料,存储基本信息。
JSP在工作时,首先启动服务器,并且保证应用在服务器上,客户通过浏览器发送请求,服务器接收到请求之后,查找有没有这个文件对应的JAVA文件的对象。
如果没有这个文件,则需要创建(先把JSP文件转换成JAVA文件,编译成.class文件,加载类并创建对象),然后调用对象的相应方法,方法完成对用户的响应,通常输出的是HTML代码,客户端接收到HTML代码,浏览器解析这个代码生成画面。
在网站设计中,处处离不开Servlet,它充当一个控制器,负责封装数据,处理业务,页面分发。
JSP实验总结引言本文档旨在总结和归纳我在JSP实验中的学习经验和心得体会。
在本次实验中,我使用JSP(Java Server Pages)技术开发了一个简单的Web应用程序,通过这个过程,我对JSP的基本概念、工作原理以及与Java的交互有了更深入的理解。
实验背景JSP是一种服务器端的动态网页技术,可以将java代码嵌入到HTML页面中,实现动态生成网页内容的功能。
通过使用JSP,我们可以将视图层的逻辑与业务逻辑分离,提高了代码的可维护性和代码重用性。
实验步骤1. 环境准备在开始实验之前,我先安装了JDK(Java Development Kit)和Tomcat服务器。
JDK是Java开发工具包,它包含了编译Java源代码的编译器和Java虚拟机。
Tomcat是一个开源的Java Servlet容器,用于运行和管理JSP应用程序。
2. 创建JSP页面在我的实验中,我创建了一个名为index.jsp的JSP页面作为我的主页。
我使用了HTML、CSS和JSP标记语言来设计和构建页面布局。
<!DOCTYPE html><html><head><title>My JSP Page</title><style>body {font-family: Arial, sans-serif;margin: 0;padding: 20px;text-align: center;}h1 {color: #1E90FF;margin-top: 100px;}p {color: #808080;}</style></head><body><h1>Welcome to my JSP page!</h1><p>Today's date and time is <%= new java.util.Date() %>.</p></body></html>在页面的header部分,我设置了标题和一些基本的样式。
MVC模式:jsp+servlet+javabean---- 网站开发模式(省去dao数据访问对象,便于理解)------ 模式一:jsp+JavaBean :适合快速开发,但是jsp于javabean之间紧密耦合,开发维护造成麻烦。
eg:美工和开发人员分工不明确,彼此依赖增强。
·jsp :会做模式二中jsp+servlet的工作·javabean:同下模式二:jsp+servlet+javabean:适合于团队开发,速度相对较慢,但可维护性高。
·jsp:开发前台界面方便,做ui开发容易·servlet:是java程序,安全性高,性能也高;但是显示不方便,也可以像jsp一样接受用户的请求参数·javabean:可重复调用,需要接受用户的请求参数,进行相应的处理如果将模式一的jsp的接受用户参数的功能部分交给servlet去做,则jsp就不用直跟javabean交流。
即:jsp -> servlet -> javabean问题?·jsp跳转到servlet可以吗?---------- 表单提交或超链接·servlet跳转到jsp可以吗?---------- response,request(当数据只希望保存1次,用request范围保存属性,则要求是服务器端跳转)/****联想到jsp中两种跳转语句的区别:·response.sendRedirect():客户端跳转,请求不保存·<jsp:forward page = "" >:服务器端跳转,请求可以继续保存jsp中属性保存的四种范围:page request session application****/request怎么跳转呢?RequestDispatcher 接口 ---------- 服务器跳转-------servlet跳转到jsp 的服务器端类似于<jsp:forward page=""/> ----------------------jsp跳转到servlet eg:RequestDispatcher rd = null;rd = req.getRequestDispatcher("url");rd.forward(req,res);或者:req.getRequestDispatcher("url").forward(req,res);--------------------------mvc例子----------------------------------- 案例描述:htm:表单servlet:接受姓名,调用javabean判断结果,显示成功/失败的页面javabean:判断姓名是否为空----------- 详细描述:mvc_login.htm中大致内容如下:<form action = "mvcdemo.mldn" method = "post">输入姓名:<input type = "text" name = "uname"><input type = "submit" value="提交"></form>封装Servletpublic class MVCServlet extends HttpServlet{public void doGet(.. req,... res)throws...{this.doPost(req,res);}public void doPost(.. req,... res)throws...{String name = req.getParameter("uname");MVCCheck mc = new MVCCheck();mc.setName(name); //请求对象设置到mc对象中去String path = "";if(mc.isValidate()){//保存名字在request范围中去req.setAttribute("name",mc.getName());path="mvc_success.jsp";}else{path = "mvc_failure.jsp";}//进行跳转req.getRequestDispatcher(path).forward(req,res);}//在Web.xml中配置Servletpublic class MVCCheck --------- 一个简单的bean{private String name;... setName(...);... getName(...);public boolean isValidate(){if( == null || "".equals()){return false;}else{return true;}}}mvc_success.jsp页面<h1>输入成功><%= request.getAttribute("name")%></h1>mvc_failure.jsp页面<h1>输入失败</h1><h2><a>回去登陆</a></h2>总结:servlet中最好只有以下几种代码:·接受参数·调用javabean ·进行跳转·有一些简单的逻辑判断。
学习jsp的心得体会篇一:JSP学习心得学习JSP程序设计心得体会满怀期待的等待在去年暑假得知自己被录取到了武汉科技学院经济管理学院信息管理与信息系统专业的那天起我就与信管这个专业结下不解之缘。
但是当时我并不知道信管这个专业是干嘛的,也是第一次听到这个专业,得知自己的专业被调剂了心里还是感觉挺失落的,后来就上去查关于这个专业的一些介绍。
“信息管理与信息系统专业业务培养目标:信息管理与信息系统专业培养具备现代管理学理论基础、计算机科学技术知识及应用能力,掌握系统思想和信息系统分析与设计方法以及信息管理等方面的知识与能力,能在国家各级管理部门、工商企业、金融机构、科研单位等部门从事信息管理以及信息系统分析、设计、实施管理和评价等方面的高级专门人才。
”当时看到上面关于信管专业的培养目标,我觉得这个专业还是挺好的,所以满怀期待的等待快点开学。
学习心路现在我已经是大二学生了,学信管专业也已经有一年多了,在大一的两门基础专业课的学习中我觉得好枯燥啊,学习C语言跟JAVA,但是这个学期我们开了JSP课程设计,没上课之前听学长学姐们说这门课是教我们怎么做站的,我就想总算可以自己做站了,从此结束了只是学习枯燥的语言的日子了。
记得在第一节课上,陈老师就跟我们讲了“为什么学JSP?”,“JSP学什么?”,“学JSP有什么用?”还有“如何学JSP?”从老师对这些问题的讲解中我确实体会到了学习JSP的重要性和如何去学。
在课上还了解了这门课程老师要讲述的主要内容以及需要具备的相关知识。
在老师所要求的具备的基础知识中我在JAVA上是最欠缺的,之前也只是跟着老师学,自己在课下并没有下很多功夫。
在前阶段的学习中我感觉很轻松,因为老师讲到的HTML 我已经在暑假自学的差不多了,所以做一个静态的页面还是没有多大问题,但是后来学到后面要用到JAVA做一些动态的页就感觉越来越吃力了,之前学过的很多JAVA知识也有很多都已经忘了。
所以在第一次实验报告的完成中就用到了比较长的时间,最后才能勉强做到符合老师的要求。
第一章动态网页开发基础(1)什么是动态网站动态网页是指在服务器运行的,根据某种条件变化,返回不同的内容。
(2)动态的网页的优势交互性:即网页会根据用户的要求和选择而动态改变和显示内容。
自动更新:即无须改变页面代码,便会自动生成新的页面内容可以节省工作量。
随机性:即当不同的时间、不同的人访问同一网址时会产生不同的页面结果。
问答:动态网页是静态网页的代替品吗?解答:静态网页和动态网页各有特点,网站采用动态网页还是静态网页主要取决于网站的功能需求和网站的多少。
C/S(Client/Server,客户端/服务器)架构的系统,其分为客户端和服务器两层,用户在本地安装客户端软件,通过网络与服务器相互通信。
B/S(Browser/Server,浏览器/服务器)B/S架构的web应用程序不在受安装客户端的限制。
B/S维护和升级方式简单C/S 一般面向相对固定的用户群,页面友好。
B/S架构的工作流程(1)浏览器接受用户的输入(2)浏览器向服务器端发送请求(3)数据处理:服务器端通常使用服务器端脚本语言(如JSP等)进行数据库访问查询数据、解释HTML文件,呈现结果界面。
(4)发送响应:服务器向浏览器发送响应消息(一般是动态生成HTML页面),并由浏览器解释HTML文件,呈现结果界面。
什么是URLURL(Uniform Resource Locator)的意思是统一资源定位符,是用于完整地描述Internet上网的其他资源的地址的一种标示方法。
URl的组成(1)协议(2)服务器域名或IP地址(3)端口号Tomcat目录结构/bin 存放各种平台下用于启动和停止Tomacat的脚本文件。
/conf 存放Tomcat服务器的各种配置文件/lib 存放Tomcat服务器所需的各种JAR文件/logs 存放Tomcat日志文件/temp Tomcat运行时用于存放临时文件/webapps web应用的发布目录/work Tomcat把由于JSP生成Servet存放次目录下Web应用的目录结构/ Web应用的跟目录,该目录下的所有文件对客户端都可以访问,包括JSP,HTML./WEB-INF 存放应用程序使用的各种资源,该目录及其子目录对客户端都是不可以访问的其中包括web.xml(部署表述符)/WEB-INF/classes 存放应用所有的class文件/WEB-INF/lib 存放Web应用的JAR文件每个Java Web应用都有一个核心文件即web.xml。
Jspd 执行过程Web容器会通过三个阶段实现处理(1)翻译处理:当web容器接收到jsp请求时,首先会对jsp文件进行翻译,将编写好的jsp文件通过jsp容器jsp容器转换可识别的Java源代码。
(2)编译阶段:经过翻译后的jsp文件相当于编写好的Java源文件,此时仅有Java源文件是不够的,必须要将Java源文件编译成可执行节码文件所以Web容器处理jsp请求的第二阶段就是编译(3)执行阶段:经过翻译的编译阶段,生成看可执行的二进制节码文件,此时进入执行阶段。
当执行结束后,得到处理请求的结果,把生成的结果页面返回到浏览器客户端显示。
Jsp 中的注释(1)HTML注释方法:使用格式<!—HTML代码-->(2)Jsp注释标记:使用格式<%--jsp代码--%>(3)Jsp脚本注释:使用格式<% 脚本代码%>三种注释方法,对应代码片段:<!—html注释-->(可以被客户端看到源代码)<%--jsp注释--%>(客户端不可以看到源代码)<%//使用预定格式将日期转换为字符串%Jsp指令元素Jsp指令元素的作用是通过设置指令中的属性,在jsp运行时,控制jsp 页面的某些特征。
Jsp指令代码片段:<%@ pqge language=”java”import=”java.utli.*,java.text.*”contentType=”text/j=html”;charset=”utf-8” %>Page指令是针对当前页面进行设置的一种指令,通常位于jsp页面顶端。
Page只对当前页面有效,一个页面中可以包含多个page指令。
Page指令元素Language 指定jsp页面使用的脚本语言,默认JavaImport 通过该属性引用脚本语言中使用到的类文件ContentType 设置页面的字符编码Jsp脚本元素(1)小脚本可以包含任意的Java片段,小脚本可以执行复杂的操作和业务。
将编写的java代码插入到<% %>中。
(2)表达式是对数据显示的,其语法<% = java表达式%>(3)声明变量:Java脚本定义成员变量和方法。
声明语法<%! Java语法%>第二章Jsp数据交互(一)Jsp 内置对象outOut对象用于向浏览器输出数据,常用的方法有print(),该方法用于在页面中显示字符串信息,语法如下:<%Out.print(“Hello jsp”);%>Jsp内置对象requestRequest对象是浏览器向服务器发送请求信息。
request对象常用方法String getParaemter(String name); 根据页面表单组件名称获取页面提交数据的数据。
String getParamenValues(String name); 获取一组同名称命名的表单数据。
void setCharcterEncoding(“utf-8”); 指定每个请求的编码getRequestDispatcher(); 该对象的forward()方法用于转发请求。
以get方法提交表单数据中有中文字符编码转换语法。
String name=request.getParameter(“name”);Name=new String(name.getBytes(“ISO-8859-1”),”utf-8”);还可以通过在Tomcat中设置字符集方式解决找到tomcat目录\conf\server.xml文件;在<Connector>元素中添加URIEncoding属性将它的值设置为“utf-8”;Jsp内置对象responseresponse对象用于响应客户请求并向客户端输出信息。
response对象的常用方法void addCookie(Cookie cookie) 在客户端添加cookievoid setContentType(String Type) 设置HTTP响应的contentType类型void setCharacterEncoding(“utf-8”) 设置指定的字符编码类型void sendRedirect(String location); 将请求重新定位一个新的URL转发和重定向区别转发:Web服务器内部将一个request请求的处理权交给另一个资源属于同一个访问请求和响应过程所以rquest对象信息不会丢失。
是通过RequestDispatcher对象的forward方法将提交信息进行多个页面传递。
重定向:Web向浏览器返回一个响应,浏览器接受此响应后再发送一个新的http请求到服务器,这属于两次不同的请求,则上一次请求的request信息将丢失。
Jsp内置对象session什么是会话?就Web开发来说,一个会话就是用户通过浏览器与服务器之间进行的一次通话。
它可以包含浏览器与服务器之间的多次请求、响应过程。
session机制是一种服务器端的机制,在服务器端使用类似于散列表表的结构来保存信息。
session对象的常用方法void setAttribute(String key,Object value) 以key/value的形式将对象保存到session中。
Object getAttribute(String key); 通过key获取session中保存的对象。
Void invalidate() 设置session 对象session对象失效String getId() 获取seesionVoid setMaxInactiveInterval(int interval) 设定的非活动时间Int getMaxInactiveInterval() 获取session的有效非活动时间,以秒为单位Void removeAttribute(String key) 从session中删除指定的名称(key)所对应的对象。
include指令表示,在jsp编译时插入一个包文本或代码文件,语法:<%@ include file=”文件路径” %>。
第三章Jsp数据交互(二)Jsp 内置对象applicationapplication对象类似于系统的“全局变量”用于同一个服务器内的所有用户之间的数据共享。
对于整个Web服务器,application对象有且只有一个实例。
application对象的常用方法void setAttribute(String key,Object) 以key/value的形式将对象存储到application中。
Object getAttribute(String key)通过key获取application中存储的对象。
String getRealPath(String path) 返回相对路径的真实路径。
Jsp的常用内置对象out对象用于向客户端输出数据request 对象主要用于处理客户端请求信息response对象用于响应客户端请求并向客户端输出信息session对象用于记录会话状态appliction对象类似于系统的全局变量,用于实现Web应用中的资源共享。
Jsp的其他内置对象PageContext:提供了在jsp运行时访问和其相关的环境信息能力。
通过pageContext对象可以访问和当前jsp页面相关联的所有作用域,以及一些页面属性。
PageContext对象常用的方法。
◆SercletRequest.getRequest(): 获得request对象◆ServletReponse.getResponse(); 获得response对象◆HttpSession getSession(); 获得session对象◆JspWriter.getOut(); 获得out对象◆Void setAttribute(); 保存属性◆Object getAttrubute; 获得属性◆Void include(); 请求指定的资源,并将目标资源的响应结果包含在调用页面的响应中。
Page:表示当前页面。
类似于Java中this。
Config:用于存放jsp编译后的初始数据。