您的位置:首页 > Web前端 > JavaScript

jsp知识回顾

2011-11-08 09:19 483 查看
好吧.简单总结下jsp

1. Tomcat运行时候需要配置JAVA_HOME,因为在一台电脑上可能存在多个JDK.需要配置到底使用哪一个JDK.

2. tomact主目录中的文件夹

a) bin:所以的可执行文件

b) common:里面存放需要的*.jar包

c) conf:配置文件,服务器修改都要在此目录中进行,里面的server.xml是配置的核心文件

d) logs:日志文件,如果服务器错误就会自动记录

e) server:服务的管理程序

f) webapps:所以的可执行的WEB项目就会放在这个目录中

g) work:此文件夹中保存所以的临时文件.

配置虚拟目录,在WEB-INF下的web.xml文件中

<Context path=”/billy” docBase=”P:\temp”/>

path:表示浏览器中输入的路径:必须有”/”

docBase:表示此目录对应硬盘中的真实目录

配置文件改了必须重启服务器

修改conf/web.xml显示列表功能

<init-param>

<param-name>listings</param-name>

<param-value>true</param-value>

</init-param>

3. 恩,现在开发环境转到myeclipse.下面来看看用jdbc+jsp写的一个小小的登录程序,贴个javascript的代码就行了

<script language="javascript">

function validate(f){

if(!(/^\w{5,15}$/.test(f.userid.value))){

alert("用户id必须是5-15位!");

f.userid.focus();

return false;

}

if(!(/^\w{5,15}$/.test(f.password.value))){

alert("密码必须是5~15位!");

f.password.focus();

return false;

}

return true;

</script>


4. 进入JSP语法的学习

jsp三种注释:

显式注释:<!-- -->

隐式注释:就是java注释 :// /* …*/

jsp自己的注释:<%-- --%>

jsp三种Scriptlet:

<%%>:可以定义变量,编写语句

<%!%>:定义全局常量,编写方法,编写类,但是不会在jsp中定义一个类.里 面绝对不能写语句

<%=%>:表达式输出,可以直接使用此形式的Scriptlet输出一个变量或一个具体的内容

5. 虽然有out.println和<%=%>两种输出方式,但是不会用第一种

6. jsp的几个指令

@page:设置MIME类型(可以到con/web.xml中查找相应的MIME类型)

例子:<%@page contextType=”text/html;charset:GBK%>

import:是page指令中唯一允许设置多次的指令,目的是导包.

<%@page import=”java.sql.*”%>

<%@page import=”java.util.*,java.io.*%>

@include:静态包含,可以包含任意的文件,只负责包含内容而已

jsp:include ,这个是动态包含,如果包含的是jsp,则先处理之后再将结果包含,如果不是*.jsp文件,那么就和@include一样

forward:跳转指令,是服务器跳转,地址栏信息不改变

形式

<jsp:forward page=”页面”

<jsp:forward page=”页面”>

<jsp param name=”参数名称” value=”值”/>

</jsp:forward>

在客服端用request.getParameter(name)接收参数.
7. 内置对象介绍

a) 九个内置对象

No

内置对象
类型
1
pageContext

javax.servlet.jsp.PageContext

2
request

javax.servlet.http.HttpServletRequest

3
response

javax.servlet.http.HttpServletResponse

4
session

javax.servlet.http.HttpSession

5
application

javax.servlet.ServletContext

6
config

javax.servlet.ServletConfig

7
out

javax.servlet.jsp.JspWriter

8
page

javax.lang.Object

9
exception

java.lang.Throwable

8. 四种属性范围

当前页,request,session,application.

page属性范围:虽然习惯上将页面范围的属性称为page范围,但是实际中操作的时候是使用pageContext内置对象完成的.pageContext从字面上看表示一个页面的上下文,表示 所有页面内容.

补充说明:四种属性范围,实际上都是通过pageContext属性范围一起设置上的.public void setAttribute(String name,Object,int scope)

9. 属性的操作方法

No

方法
描述
1
public void getAttribute(String name,Object value)

设置属性

2
public Object getAttribute(String name)

取得属性

3
public void removeAttribute(String name)

删除属性

10.request内置对象:

request接收参数:request.getParameter(String name);

request.setCharacterEncoding("UTF-8")的作用是设置对客户端请求进行重新编码的编码

get、post提交:

get会在地址栏中显示提交的内容

地址栏最大能放4K-5K容量的文字,所以过大肯定无法提交

post不在地址栏显示,理论上是任意长度,但是如果太长会超出HTTP的超 时时间的限制

url重写:使用地址重写的方式传递参数

隐藏域传递参数

在表单中有一种隐藏域的对象,此对象中的内容会随着表单的提交一起提交到JSP页面上.

设置:<input type =”hidden” name=”var” value”billy”>

取得:String var = request.getParameter(“var”);//接收表达参数

接收多个参数需要用request.getParameterValues()

request02.htm

<form action = “request02.jsp” method=”post”>

兴趣:<input type =”text” name=”inst” value=”游泳">游泳

<input type =”text” name=”inst” value=”唱歌">唱歌

<input type =”text” name=”inst” value=”跳舞">跳舞

</form>

request02.jsp

<%@ page contentType=”text/html;charset=GBK”%>

<%

  request.setCharsetEncoding(“GBK”):

String[] inst=request.getParameterValues(“inst”); //接收表单参数

%>

<h2>兴趣:

<%

for(int i=0;i<inst.length;i++){

%>

<%=inst[i]%>、

<%

}

%>

</h2>

取得表单提交参数所以名称:getParameterNames()

取得客户端IP:request.getRemoteAddr()

response内置对象:

No

方法

描述

1

public void setHeader(String name,String value)

设置头信息名字内容

2

public void setRedirect(Stirng locations)throws java.IOException

页面跳转

3

public void addCookie(Cookie cookie)

客户端加入Cookie

4

public void setContentType(java.lang.String type)

设置返回类型

取得全部头信息:request.getHeaderNames()

指定头信息:public String getHeader(java.lang.String name)

response.sendRedirect(“url”)这个是客户端跳转,地址栏信息会改变;

两种跳转的比较:

forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。

redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。

Cookie类的主要方法

No

方法

类型

描述

1

public Cookie(String name,String value)

构造

实例化Cookie对象,传入名称和值

2

public java.lang.String getName()

普通

取得Cookie的名字

3

public void setValue(java.lang.String newValue)

普通

修改内容

4

public void setMaxAge(int expiry)

普通

Cookie的最大保存时间

session内置对象:

取得sessionid: session.getId()

让session失效: session.invalidate();

判断是否是新的session: session.isNew()

application内置对象:

获得真实路径: application.getRealPath(“/”)

实际用getSeverletContext()来表示application:因为有些Web服务器不直接支持使用application对象,getServerletContext()由容器调用相当于this. getServerletContext()

application对象常用作网站的计数器
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: