JSP总结
java中文乱码的根本原因是
由于JDK是国际版的,在编译的时候,如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe首先获得我们操作系统默认采用的编码格式,也即在编译java程序时,若我们不指定源程序文件的编码格式,JDK首先获得操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,WINXP,它的值为GBK),然后JDK就把我们的java源程序从file.encoding编码格式转化为JAVA内部默认的UNICODE格式放入内存中。然后,javac把转换后的unicode格式的文件进行编译成.class类文件,此时.class文件是UNICODE编码的,它暂放在内存中,紧接着,JDK将此以UNICODE编码的编译后的class文件保存到我们的操作系统中形成我们见到的.class文件。对我们来说,我们最终获得的.class文件是内容以UNICODE编码格式保存的类文件,它内部包含我们源程序中的中文字符串,只不过此时它己经由file.encoding格式转化为UNICODE格式了。当我们不加设置就编译时,相当于使用了参数:javac -encoding gbk XX.java,当然就会出现不兼容的情况。
解决办法要多种有多种:
控制台中:应该使用-encoding参数指明编码方式:javac -encoding UTF-8 XX.java
Tomcat服务器端
进入Tomcat根目录的config,然后打开config下的server.xml文件
ctrl+f输入8080 在<Connector port="8080" 中加入URIEncoding="UTF-8"
在IDE中
首先设制或更改IDE的默认编码格式式。1)jsp页面中设置。2)wrokspace设置。
手工转换方式
Jsp页面:<%@pageEncoding=”UTF-8”%>
Servlet:
1 request.setCharacterEncoding("UTF-8");
Response.setContentType(“text/html;charset=”UTF-8”);
2
String a=request.getParameter("a");
String b=new String(a.getBytes("ISO-8859-1"),"UTF-8");
java.net.uerlEncoder.encode("字符串","UTF-8");
3
byte[] tempb=str.getBytes("UTF-8");
str=new String(dempb);
在过滤器中
public class SetEncodingFilter implements Filter {
private String defaultEncoding = "utf-8";
@Override
public void destroy() {
defaultEncoding = null;
}
@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
arg0.setCharacterEncoding(defaultEncoding);
arg1.setCharacterEncoding(defaultEncoding);
arg2.doFilter(arg0, arg1);
}
@Override
public void init(FilterConfig arg0) throws ServletException {
String encoding = arg0.getInitParameter("encoding");
if (encoding != null) {
defaultEncoding = encoding;
}
}
}
//配置部署描述符
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.majm.filter.FilterDemo</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
1. 动态网站开发模式
软件部署模式
推模式(强制的)
拉模式(有请求响应的)
为什么需要动态网页
特点:
a) 交互性
b) 自动更新
c) 随机性
400客户端错误
未部署:News/index.html
url输入错误:WebRoot/index.html
目录不能被引用:news/WEB-inf/index.html
500服务器端错误
jsp中的文件路径错误
2. JSP简介
为什么需要jsp
Jsp 是在服务器端应用的程序
维护更方便
JSP中的注释规范:
<!——Html注释——>
<% //java单行注释 %>
<%——JSP 使用的注释——%> 优先考虑:不管里面有什么样代码,服务器都不会执行
JSP中的变量声明
<%! int age ;%> ——实例变量
<% int age ; %> ——局部变量
Java中 static int ——类变量
所有的JSP文件在第一次运行时都会自动编译成*.class文件
第一次 *.jsp——>*.java——>*.class——>运行显示
第二次 |—————————*.class|——>运行显示
修改以后
第三次 *.jsp——>*.java——>*.class-——>运行显示
第四次
3. JSP指令和脚步元素
JSP中的基本指令:
Page指令主要用来指名当前JSP页面的属性
<% @page %>
——设定MIME类型(告诉客户端浏览器时什么类型格式)
<% @page ContentType=”text/html; charset=utf-8”%>
——利用import语句导入类:<% @page import=”java.util.*,java.sql*;”%>
——JSP输出错处理:<% @page errorpage=”error.jsp”%>
——指名出错页:<% @page isErrorPage=”true.jsp”%>
——使用的编程语言:<% @page language=”java”%>
——缓冲设置处理:<% @page isAutoFlush=”true”%><% @page buffer=”8kb”%>
<jsp:include page=”url” />——区分一下动态还是静态,如果是动态,将它处理后包含
——动态的包含页面:能自动区分所包含的是静态页面还是动态的页面。
——执行时:
●如果请求的资源为静态资源则直接将资源包含处理与<%@include file=”url” %>相同
●如果请求的资源为动态,则先处理资源,之后将处理后的结果包含在一起
所有代码分别处理,处理完后再将代码的显示结果和处理结果包含进来
<%@include file=”url” %>——不管是什么类型的文件都可以被包含进来
——页面的包含:不管其文件内容如何只是将页面中的内容包含进来
——执行时:
○先将所有内容包含进来一起处理完后在将所有内容发送给客户端
所有代码包含进来后,一起进行处理,把所有代码合在一起包含进来
<jsp:forward page=”url”/>
属于标签指令形式代码:必须写在(%---%)中。
Forward属于服务器端无条件跳转语句
使用跳转语句,页面的内容已经是跳转了,但地址栏没有任何变化
4. JSP处理客户端请求
表单的两种提交形式:
method:传输数据形式,数据类型。
Action:表单数据程序,*.jsp,*.asp,*.php,servlet中
method的n重方式和应用类型
post: 大量数据
get: 下载
put: 上传
delete(首部): 服务器端删除
head: 头部信息
trace: 跟踪信息
options: 可以判断页面请求是否屏蔽
get和post的主要区别:
post:以流的方式来传输(不可见的) 不可以添加到收藏夹。
get:以查询字符窜来传输数据 可添加到收藏夹。明文传输,不安全,长度有限(255)。
除了post以外,所有的请求都是get方式传输的。
EJB:主要是在分布式的应用中。
Ipo:硬处理输出。
request:封装客户端请求数据。
response:封装服务器响应数据。
请求开关:requset.gerRequestDispatcher("目标文件").forward(request,respose);
只能在本应用中跳转。"/"本web应用。
发送重定向:response.sendRedirect("目标文件");
可以跳出本网站,本web应用。属于不同的请求。"/"服务器。
刷新:responst.setHead("refresh","1");
JAVA中:对象。方法.类。方法
JAVA中:对象必须先实例化再用,分配内存空间
Web Container: Web容器——为对象实例化
Request对象:
Request——>HttpServletRequest接口的实例化对象
HttpServletRequest有个父类:ServletRequest(为以后新出的协议提供)
JSP的内置对象分类
*与Servlet有关的隐含对象
——page ——config
*与Input/output有关的隐含对象(io有关)
——out ——request ——response
*JSP执行时,提供有关Context的隐含对象
——session ——application ——pageContext
*Error有关的隐含对象
——exception
JSP中可以采用下面方法设置和取得对象
public abstract void setAttribute(String name,Object value);
public abstract Object getAttribute(String name);
Request对象:
主要功能是服务器端接受客户端以HTTP方式传输给客户端数据,以便对其进行进一步处理,实现交互功能。
常用方法:蓝色为常用
getParameter(); ——接收请求参数的
setCharacterEncoding(); ——设置统一字符编码
getParameterValues(); ——返回的是数组类型
getParameterNames(); ——返回的是枚举类型:功能:取得客户端所有请求参数
getRemoteAddr(); ——取得客户端IP地址
5. JSP页面的访问控制
JSP内置的9大对象
pageContext 代表jsp页面上下文。常用的有getServletContext().getServletConfig()
exception 异常 只能用在错误页面(isErrorpage,"true");
out IsWriter输出流,支持中文——客户端流通道。
page 当前页面的java文件。创建出来的对象。
request 封装客户端请求数据
response 封装服务器响应数据
session 在一次会话中封装用户的数据
config 读取部署描述符 ServletConfig
application servlet应用上下文环境。(应用)ServletContext
session和application应用级区别
session : 单用户独享用
Application : 所有用户共享
用户离开时:
服务器对session会有一定的会话超时时间,一般都为30分钟。
内置对象在web容器中的应用范围
page——> request——> session——> application
性能的话:发送重定向效率要高的多。
开发中血的教训:
文件路径:不同的目录下,一定要用绝对路径。如(应用服务器名/*.jsp)
“.”代表本web应用
“/”代表复务器。(localhsot:8080)
——执行时:
分享到:
相关推荐
"jsp课程总结" JSP(JavaServer Page)是一种基于 Java Server 以及整个 Java 体系的 Web 开发技术,能够建立动态的、高性能的、安全的、跨平台的先进动态网站。JSP 技术的核心是将 Java 代码嵌入到 HTML 页面中,...
4. **JSP动作(JSP Actions)**:如`<jsp:include>`和`<jsp:forward>`等,但示例中未使用。 5. **EL(Expression Language)**:虽然示例中未使用,但EL通常用于简化JSP页面中的数据访问。 6. **JSTL(JavaServer ...
自己总结的servlet与jsp部分 希望对大家有所帮助
### JSP知识点总结 #### 1. JSP简介 JSP(Java Server Pages)是一种基于Java的服务器端脚本技术,用于创建动态网页。它结合了HTML标记和Java代码,使得开发者可以在静态网页的基础上添加动态内容。JSP具有以下...
jsp总结代码,配置Tomcat,jsp的组成 (定义:在html中嵌入java脚本代码)
jsp基础的学习资料,适合初学者,ppt形式,可以很容易学会jsp jsp基础的学习资料,适合初学者
**JSP 学习总结** JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML中嵌入Java代码,以实现服务器端的程序逻辑。对于初学者来说,掌握JSP的基础知识和核心概念至关重要。 ### JSP 开发Web应用系统 ...
总结,利用JSP开发教室管理系统,我们需要结合Servlet、Java Bean、JDBC、数据库以及前端技术,实现用户交互、数据处理和业务逻辑。在实际开发过程中,还要注意安全性、性能优化以及代码规范,以构建出高效、稳定的...
jsp小结,温故而知新页面语言: 静态:html 动态:asp,php,jsp 1.jsp运行环境 动态的代码 必须有服务器来解析这些代码 2.服务器tomcat 免费服务器
**JSP知识总结1** **一、静态页面基础** 1. **HTML文档结构**:HTML文档通常由开始标记`<html>`、头部标记`<head>`、主体标记`<body>`以及结束标记`</html>`组成。 2. **排版标记**:包括标题标记如`<hn></hn>`(n...
【JSP期末概念总结】 JSP(JavaServer Pages)是一种基于Java的技术,它允许开发者在HTML页面中嵌入Java代码,以实现动态网页的创建。JSP文件在服务器上被编译成Servlet类,然后执行生成动态内容。JSP的核心在于将...
JSP(Java Server Pages)是Java技术中用于创建动态网页的一种标准,它是J2EE(Java 2 Platform, Enterprise Edition)的一部分。JSP的核心在于它能够将静态HTML内容与Java代码相结合,允许开发者在服务器端生成HTML...
使用mindmaster打开
JSP & Servlet 技术总结 JSP技术总结 2 1. JSP页面元素构成 2 2. JSP脚本元素 2 3. 注释 2 4. JSP指令 2 5. JSP动作元素 3 6. JSP内置对象 5 7. JSP内置对象及其作用 5 8. 获取页面参数 5 9. 重定向...
JSP(JavaServer Pages)是一种基于Java的动态网页技术,常用于构建Web应用程序。在本文中,我们将深入探讨一个基本的JSP登录模块的实现,包括各个关键页面的功能和交互流程。 1. **检查Cookie页面(index.jsp)**: ...
**ACCP5.0 JSP(2):深入理解与应用JSP开发Web应用系统** 在Web开发领域,JavaServer Pages (JSP) 是一种强大的技术,用于创建动态、交互式的网页。本教程将深入探讨JSP的核心概念,理论部分旨在帮助开发者掌握JSP...
总结,JSP分页实现是一个涉及到数据库操作、服务器端逻辑和客户端展示的综合过程。开发者需要理解如何在后台处理分页逻辑,如何将数据传递给前端,以及如何在前端展示分页效果。掌握这些知识后,无论是开发大型网站...
jsp servlet开发总结文档 jsp Servlet总结jsp Servlet总结jsp Servlet总结