JSP基本语法D–request对象

2008年1月24日 366 次阅读

request对象其实是服务器端接受客户端请求的信息的,在接受信息之后做进一步处理

常用方法:getParameter(),getParameterValues(),getParameterNames()

在接受参数之后若页面中包含中文则会出现乱码,之所以会出现这样根本原因就是此文字不在正常的编码范围之中,解决方法有:

  1. 对所有的数据进行在编码:ISO8859-1编码
    • String类中的getBytes("ISO8859-1");
    • getBytes()方法的定义:Public byte[] getBytes("encoding")再将byte数组重新变为字符串。e.g.String name=new String(request.getParameter("uname").getBytes("ISO8859-1"));
  2. 设置同意的字符编码
    • Public void setCharacterEncoding(String env)

在J2EE中,最大的问题是乱码问题–要做到国际通用

若传递的内容是数组(复选框的情况下、多个下拉列表项)使用request的一下方法取得数据:

  • Public String[] getParameterValues(String name)

隐藏域是开发中较为常用的表单控件,其作用是将内容隐藏起来,使用户不能修改,之后随表单一起提交到服务器上显示。

地址重写

  • 通过地址重写,可以将内容传递到服务器端–服务器端只认HTTP协议而不管接受的内容是以何种形式传递过来的,若有多个参数用&连接

★getParameterNames主要用来接受参数名称

  • Public Enumeration getParameterNames()

取得客户端IP地址的方法:Public String getRemoteAddr()

★★总结:

  • 只要是客户端的信息,在服务器端都可以通过request对象取得
  • 只需要注意中文乱码问题即可
  • 必须掌握的方法getParameter(),getParameterValues(),setCharacterEncoding()

alex Java , , ,

JSP基本语法C–JSP内置对象

2008年1月16日 499 次阅读

Java中的对象必须先实例化再用:分配内存空间

在JSP中,由WEB容器对对象进行实例化

常见对象及作用域:

对象名 类型 作用域
request javax.servlet.ServletRequest的子类 Request
response javax.servlet.ServletResponse的子类 Page
pageContext javax.servlet.jsp.PageContext Page
session javax.servlet.http.HttpSession Session
application javax.servlet.ServletContext Application
out javax.servlet.jsp.JspWriter Page
config javax.servlet.ServletConfig Page
page java.lang.Object Page
exception java.lang.Throwable Page

!!最重要的概念:四种属性的保存范围

  1. 设置属性:Public abstract Void setAttribute(java.lang.String name,java.lang.Object attribute)  ★★属性名称为字符串、属性值可以为任意对象
  2. 取得属性:Public abstract Void setAttribute(java.lang.String name)

四种属性保存范围:

  1. 在一个页面范围内 :page
  2. 在一次服务器请求范围内:request
  3. 在一次会话范围内:session
  4. 在一个应用服务器范围内:application

page范围:

  • 在jsp中设置一个页的属性范围必须通过pageContext完成
  • pageContext属性范围是最为重要的JSP属性之一,但是如果使用纯粹的JSP代码开发,则此属性显示不出用处

request范围★:

  • 将属性保存在一次请求范围内的前提是,必须使用服务器端跳转<jsp:forward />
    • 应用点:MVC设计模式、Struts、Webwork

session范围:

  • 只保留一个用户的信息
  • 只要设置了属性,则不管是什么跳转都可以取得属性
  • 与session有关的任何打开页面都可以取得session
  • ★session的主要功能:用于验证用户是否登陆

application范围:

  • 只要设置一次则所有的网页窗口都可以取得数据
  • 如果要释放application资源只能重新启动服务器
    • 应用点:在线人员统计、在线人员名单列表

application、session、request都需要跨多个页

保持性能不降低的原则:若能用request就不不要使用session,能使用session就不要使用application

★★重要概念:

  • pageContext默认情况下表示一个页面的保存范围
  • 另一种设置属性的方法Public abstract Void setAttribute(java.lang.String name,java.lang.Object attribute,int scope)
    • scope可以取:Public Static final int APPLICATION_SCOPE、Public Static final int SESSION_SCOPE、Public Static final int REQUEST_SCOPE、Public Static final int PAGE_SCOPE
  • ★★总结:四种属性范围都是依靠pageContext展开的,但是在开发中,往往使用session、request范围最多。
    • 四种属性范围是整个J2EE WEB端开发必须深刻记住的概念,包括设置属性和取得属性的参数类型,返回值类型。

alex Java , , , ,

(三)JSP基本语法B

2008年1月12日 411 次阅读

include指令: <%@include file="uri"%> e.g.<%@include file="hello.jsp"%>

  1. include命令可以包含任意文件,它包含的是文件的内容。但是在一个jsp页面中,只能有一组<html>、<head>、<body>
    • 原则:在开发中被包含的文件只写显示部分的HTML代码,主体代码不要出现
  2. 包含的时候不区分文件名称、后缀,只是将内容包含进来

包含语句<jsp:include>:

  1. <jsp:include page="uri" /> 或者 <jsp:include page="uri" flush="true"><jsp:param name="参数名称" value="参数值" /></jsp:include>
    • 若使用后一种语句可以向被包含的页面之中传递参数,如果是传递参数,则所包含的页面必须是JSP页面,必须是动态页面
    • 若包含的是JSP页面,则自动进行动态处理,若是非动态文件,则只是将内容包含进来
  2. 这种语句与HTML代码相似,称为标签指令形式
    • 标签指令形式代码必须完结 </XXX:XXXX>
    • 标签指令形式代码必须写在Scriptlet(<%…..%>)之外

<%@include file="uri"%>:只是将页面的内容静态的包含进来,若被包含的页面有JSP代码,则执行此代码而不管被包含的页面文件后缀如何                                          //  先包含后处理

<jsp:include page="uri"/>:若被包含的文件内容是静态的,则直接将内容包含进来,但是不处理,如果被包含的页面是动态的,则先执行,再把结果包含进来显示                  //   先处理后包含

两者的区别

  • <%@include%> :所有代码包含进来,一起进行处理,把所有代码合在一起
  • <jsp:include>:所有代码分别处理,处理完成之后再将代码的显示结果(处理结果)包含进来

跳转语句<jsp:forward>

  1. <jsp:forward page="uri" /> 或者 <jsp:forward page="uri" flush="true"><jsp:param name="参数名称" value="参数值" /></jsp:forward>
  2. <jsp:forward>也属于标签指令,使用也必须完结
  3. <jsp:forward>语句属于无条件跳转语句
  4. 使用此跳转语句,页面内容是进行了跳转,但是地址栏的地址没有变化,如果没有变化,意味着用户的请求依然没有改变,即<jsp:forward>属于服务器跳转

alex Java , , , ,

(二)JSP基本语法A

2008年1月11日 390 次阅读

注释类型:

  • 显示注释:HTML注释,此注释发送到客户端
  • 隐式注释:JAVA注释,此注释不会发送到客户端

在JSP中可以使用三种注释:

  1. <!– 注释内容 –>
  2. <% //JAVA注释内容 %>或者<% /*多行内容*/ %>
  3. <%– JSP注释 –%>

声明语句:格式:<%!声明语句%>  举例:<%!String text="Hello World!" %>

  • 用此种方式可以声明全局变量、类、方法

表达式:格式:<%=表达式%>,用来输出值,类似于out.println();

  • 在实际开发中尽量少用out.println();输出而用<%=表达式%>,这么做的目的是达到HTML和JAVA代码的分离

脚本代码(Scriptlet):格式:<%代码段%>,用来写具体的JAVA代码或者声明局部变量

  • <%!  %>和<%  %>声明的变量区别是:<%!  %>只赋一次值

JSP是一种动态的WEB程序,必须有交互功能

HTML与服务器的交互主要途径是表单

JSP接受传递过来的参数的方法:String str=request.getParameter("参数名称");

所有的JSP代码最终都是拼凑出来的,不是固定的,由WEB容器拼凑出来的

form表单的提交方式:

  • post:提交的内容不会被显示,没有长度要求
  • get: 提交的内容会被显示出来,地址栏的长度只有4K~5K,大数据则无法显示

范例:打印一个表格,行数和列数由用户输入

阅读全文…

alex Java , ,

Tomcat设置

2008年1月10日 362 次阅读

前言:前段时间学习了JAVA,主要是Stardard Edition部分,由于是自学看的不是太仔细只是了解了个大概,趁现在放假在家空余时间比较多所以想继续学下去,但是JAVA的知识体系实在是太庞大,所以只能一步一步来,所以这个寒假的主要任务就是学习下JSP,顺带巩固JAVA基础部分。由于自己看书实在是太枯燥了,所以我就在电驴上找了JSP的视频教程跟着学然后再照着练练巩固下,每天看两集,第二天写下学习笔记,这样希望能把前一天学的记住。

言归正传……(我装的是Tomcat 6.0.14版本)

Tomacat是一个WEB容器,所有的J2EE WEB程序可以在此处运行。常见的WEB容器还有WebLogic、WebSphere。

Tomcat的默认端口号是8080,这个数值可以在安装过程中修改也可以在conf/server.xml中修改。

Tomcat是根据系统的%JAVA_HOME%变量值选择系统中的JDK。

Tomcat目录主要文件夹作用

  • bin目录:存放启动和关闭Tomcat的脚本
  • conf目录:存放不同配置文件,其中比较重要的是server.xml(Tomcat的主要配置文件)和web.xml
  • work目录:存放JSP编译后的.class文件
  • webapps目录:存放WEB应用程序
  • lib目录:存放所有需要的各种jar包

配置Tomcat方式有两种:手工配置–修改conf/server.xml文件、管理控制台配置

  • 注意:修改server.xml之后要重新启动Tomcat服务器才能使配置生效

配置虚拟目录的要求

阅读全文…

alex Java , ,