jsp知识回顾

好吧.简单总结下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对象常用作网站的计数器

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值