JSP

                               JSP

JSP:九大对象、七大动作、三大指令。

 

BIN目录里面启动服务器(startup),然后在浏览器里面输入http://localhost(服务器IP):端口号(8080/就可以看到自己的服务端.

如果要运行程序:

例如:http://192.168.1.77:8080/mywork/table.jsp

192.168.1.77是服务器IP

8080是端口号。

mywork是项目名。

table.jsp是文件名。

解决乱码:

一定要把这一行放到jsp文件的第一行:

<%@ page language="java" contentType="text/html; charset=GBK"

pageEncoding="GBK"%>

 

九大对象:

第一大对象:Out

 

Out.print();输出数据到浏览器,<%=  %>一样的效果.

<%   %>括号中间写JAVA代码。

<%=变量%>输出到浏览器

 

1.       网页跳转.

form表单的跳转,form里面输入action=”*.jsp”;

例如:

<form name="enter" action="文件名.jsp" οnsubmit="return 函数名()">

<input type="submit" value="提交" name="refer">,点击提交后就可以就可以跳转到*.jsp页面.

如果输入为空的话,不想让页面跳转,可以在函数里面加入return false;不满足条件就不往下执行.全部满足条件的时候就跳转到另一个页面.

2.       javascript跳转:

例如:

 function test(){

        //window.location.href="*.jsp";   这个就像超链接,可以返回

        window.location.replace("*.jsp");  这个就是把以前的给替代了,所以不能返回.

}

在按钮上面调用这个函数方法就可以执行跳转了.

Button类型按钮:

function xxx(){

        document.form.submit();        

}

//调用这个方法的按钮会自动执行form里面的action,跳转到另一个页面.

 

动态修改action

function xxx(){

        document.enter.action="color.jsp";  //更改action里面的页面,下面的语句不能注释,要靠它提交,不然会没反映.

        document.enter.submit();             //调用这个方法的按钮会自动执行form里面的action,跳转到另一个页面.

}

 

function text(){

        document.enter.action=document.enter.name.value;  //在文本框上面输入什么页面就进入什么页面.

        document.enter.submit();   //上面改值后用这个提交.

}

 

 

****(第二大对象)request对象:获取客户端提交的数据。

  out  向客户端输出数据

  request 向客户端请求数据

客户端的跳转方式:

function zhuce(){

        document.enter.action="requestTest.jsp";

        document.enter.submit();

}

<%

out.print("<table border=1>");

out.print("<tr>");

out.print("<td>"+"姓名:"+request.getParameter("name")+"</td>");

out.print("</tr>");

%>

执行上面这段代码将会在另外一个页面输出你输入的姓名.

 

l         表单的两种提交方式getpost

<form name="enter" action="array.jsp" οnsubmit="return login()" method="post">

 

解决乱码的三种方式:

<%@ page language="java" contentType="text/html; charset=GBK"

    pageEncoding="GBK"%>

<%      request.setCharacterEncoding("GBK") ;  

            response.setCharacterEncoding("GBK")

%>

 

Get和post提交的区别:

1.Get不安全,Post安全(因为get把里面的信息全部显示在了地址栏上面,而post没有)

2.get有长度限制,post没有长度限制.

下面是get提交后产生的地址栏的地址:

http://192.168.1.77:8080/mywork/requestTest.jsp?name=%CD%F5%BA%A3&age=22&sex=%C4%D0&native=%C0%E4%CB%AE%CC%B2&like=%BF%B4%CA%E9&like=%CC%B8%C7%E9&like=%CB%AF%BE%F5&intro=%09%0D%0A%09tell+me+why+%0D%0A%09%D7

下面是post提交后产生的地址栏的地址:

http://192.168.1.77:8080/mywork/requestTest.jsp

 

服务端的跳转方式:

第三大内置对象:response (重定向)

只发生在请求的范围之内(只能从上一个页面传到另一个页面).

Response.sendRedirect(“http://www.baidu.com”);

 

response 封装了jsp产生的响应,然后被发送到客户端以响应客户的请求

 

hidden:隐藏表单域.

就是把一个框架给隐藏起来,但是它的值还在这里,只是不显示出来而已,也可以用它来传值,并且在另一个页面显示出来.

例如:

<input type="hidden" name="userName" value=<%=request.getParameter("userName")%>>

 

第四大内置对象session

在当前打开的浏览器内,多个页面的数据共享.

       session.setAttribute("name",request.getParameter("userName"));

       session.setAttribute("pass",request.getParameter("password"));

       session.getAttribute("name");

session.getAttribute("pass");                                                                           

 

第一大指令:page

用指令导入一个包:

<%@ import=”包名”%>

 

2010-4-19

在一个项目中不能用过多的session,因为它会导致系统的性能下降,所以我们要慎用session

一般是用在保存用户的登录信息(用户信息、权限、资源)、频繁使用的信息。

 

第五大内置对象(application):可以在多个浏览器内共享数据

application>session>request

session保存的数据只在当前浏览器有效,只要不关闭浏览器,就能实现多个浏览器之间的共享。

Application保存的数据在当前服务器里有效,只要不关闭服务器,也能实现多个浏览器之间的共享。

 application对象 application对象实现了用户间数据的共享,可存放全局变量.它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问.服务器的启动和关闭决定了application对象的生命.它是ServletContext类的实例.

session对象 session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止.它是HttpSession类的实例.

 

第一大指令:page

导入自己的类:

<%@ page import=包名.类名%>

 

2010-4-22

l         JSP中的静态包含与动态包含

第二大指令:include

重复的代码就抽取出来,如:一个表的欢迎语句就可以抽取出来,因为每个表都要有欢迎语句:

1静态包含<%@ include file=”*.jsp”%>

第一大动作:<jsp:include >

2动态包含<jsp:include page=”*.jsp” flush=”true”> </jsp:include>

 

这段代码放在哪里就显示在哪里!!

静态包含和动态包含的区别:

1.       单独编译(动态包含)与统一编译(静态包含)→变量共享。

2.检查包含文件变化(动态包含刷新的时候总是会去检查文件,而静态包含却不一定会去检查文件)

3.动态包含可以带参数,静态包含不可以带参数。

 

第二大动作:<jsp:useBean>

语法:

       <jsp:useBean class=”包名.类名” id=”aa” />

<jsp:useBean class=”包名.类名” id=”aa” scope=”session” />

<%

//scope=”session” 这是设置它的有效范围 就相当于session.setAttribute();

//id="person"就相当于 PersonDB person=new PersonDB();生成person对象

%>

 

  动态包含与静态包含  

<jsp:include>动态包含与静态包含

it  分类:jsp

 

动态INCLUDE

jsp:include动作实现 <jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。

 

(这里你必须使用flush="true",你不能使用false值.缺省值为false )

静态INCLUDE

用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面<%@ include file="included.htm" %>

===================================================================

1. 静态include的结果是把其他jsp引入当前jsp,两者合为一体

动态include的结构是两者独立,直到输出时才合并( 看看jsp生成的java文件就可以知道了)

2.正是因为这样,动态include的jsp文件独立性很强,是一个单独的jsp文件,需要使用的对象,页面设置,都必须有自己创建,当然, 还好它和include它的页面的request范围是一致的.

而静态include纯粹是把代码写在外面的一种共享方法,所有的变量都是可以和include它的主文件共享,两者高度紧密结合,不能有变量同名的冲突.而页面设置也可以借用主文件的.

 

  flush属性: 用true ,表示页面可刷新。

 

第六大内置对象:page

<jsp:useBean class=”包名.类名” id=”生成的对象的名字scope=”session” />

如果不写scope=”session” 就默认为第六大内置对象。

它的数据只作用于当前页面

第三大动作:<jsp:getProperty  name=生成对象的名字 property=对象的属性(age)>

从对象中取出属性值:<jsp:getProperty name="bean对象" property="bean对象属性" >

例如:<jsp:getProperty property="age" name="person"/>

 

第四大动作<jsp:getProperty name=bean对象实例 property=age value=12/>

 

例如: <jsp:setProperty property="age" name="person" value="12"/>

 

参数赋值法:<jsp:setProperty name=bean对象实例 property=age param=参数属性/>

就是说你用?号传值法把你输入的值给传到param里面。

 

1.创建bean对象:

<jsp:useBean id="bean对象引用名" class="." scope="对象作用域(page(默认)/request/session/application)" />

 

2.为对象设置属性值:

   <jsp:setProperty   name="bean对象" property="bean对象属性" param="请求参数名(表单元素名)">

   <jsp:setProperty   name="bean对象" property="bean对象属性" value="变量的值">    

注意:属性名区别大小写,param value只能单独用,不能合用

 

2.     从对象中取出属性值:<jsp:getProperty name="bean对象" property="bean对象属" >

 

 

 

 

 

 

                               set

                        

                 form提交

                               post  

1.客户端跳转                      href

               修改地址提交法    

                                  replace

 

 


                重定向:response.sendRedirect(“http://www.baidu.com”);

2.服务端跳转

                <jsp:forward page=网址/>

 

 

<jsp:forward page="header.jsp"></jsp:forward>

第五大动作:<Jsp:forward page=”*.*”></jsp:forward>

只能跳到当前文件里面的文件,不能跳到www.baidu.com.

response.sendRedirect(“http://www.baidu.com”);可以跳转到所有的网站和jsp文件.

<jsp:forward page=”网址”>response.sendRedirect(“网址”);的区别:

1.       地址栏的区别:跳转的时候, response.sendRedirect(“”);的地址栏改变了,<jsp:forward>的地址栏没有改变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值