JSP内置对象

一、实验目的:

通过编程和上机实验理解 JSP 各个页面之间的响应和传递的过程。并且能够熟练的掌 握 JSP 的内置对象的属性和方法,并能灵活运用。

 

二、实验环境:

       MyEclipse10+Tomcat 7.0+Java EE 6.0

 

三、实验内容:

(一)基础练习:request常用方法的使用

1.用 request 的各种方法输出 request 中的各种方法,新建页面 requestApp1.jsp 源代码如 下: //requestApp1.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>request的各种方法</title>

      

  </head>



  <body>

    请求信息如下:<br>

    请求的方法是:<%=request.getMethod() %>

    <br>

    请求的URI是:<%=request.getRequestURI() %>

    <br>

    请求的协议是:<%=request.getProtocol() %>

    <br>

    接受客户提交的页面路径是:<%=request.getServletPath() %>

    <br>

    请求中的查询字符串是:<%=request.getQueryString() %>

    <br>

    请求信息的总长度是:<%=request.getContentLength() %>

    <br>

    服务器名称是:<%=request.getServerName() %>

    <br>

    提供HTTP服务的服务器端口号:<%=request.getServerPort() %>

    <br>

   客户端IP地址是:<%=request.getRemoteAddr() %>

   <br>

   客户端机器的名称是:<%=request.getRemoteHost() %>

   <br>

   HTTP头文件中User-Agent的值是:<%=request.getHeader("User-Agent") %>

  <br>

  HTTP头文件中accept的值是:<%=request.getHeader("accept") %>

  <br>

  HTTP头文件中Host的值是:<%=request.getHeader("Host") %>

  <br>

  HTTP头文件中accept-encoding的值是:<%=request.getHeader("accept-encoding") %>

  <br>头名字的一个枚举:

  <%

  Enumeration enumHead=request.getHeaderNames();

  while(enumHead.hasMoreElements())

  {

     out.println((String)enumHead.nextElement());

  }

  %>

  <br>头文件指定头名字的全部值的一个枚举:

  <%

     Enumeration enum_headedValues=request.getHeaders("cookie");

     while(enum_headedValues.hasMoreElements())

     {

            out.println((String)enum_headedValues.nextElement());

     }

  %>



  </body>

</html>

运行结果:

(二)获取表单数据 

  1.建立一个新的 WEB 工程,再建立一个 Register.jsp Accept.jsp    

1)程序功能:实现页面与页面之间的信息交换。

2)程序源代码如下。 

//Register.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>新用户注册</title>

    <script type="text/javascript">

          function on_submit()

          {

                 //验证数据的合法性

                 if(form1.username.value=="")

                 {

                        alert("用户名不能为空,请输入用户名!");

                        form1.username.focus();

                        return false;

                 }

                 if(form1.userpassword.value=="")

                 {

                        alert("用户密码不能为空,请输入密码!");

                        form1.userpassword.focus();

                        return false;

                 }

                 if(form1.reuserpassword.value=="")

                 {

                        alert("用户确认密码不能为空,请确认密码!");

                        form1.reuserpassword.focus();

                        return false;

                 }

                 if(form1.userpassword.value!=form1.reuserpassword.value)

                 {

                        alert("两次输入的密码不一致,请重新输入!");

                        form1.userpassword.focus();

                        return false;

                 }

                 if(form1.email.value.length!=0)

                 {

                        for(var i=0;i<form1.email.value.length;i++)

                        {

                               if(form1.email.value.charAt(i)=="@")

                                      break;

                        }

                        if(i==form1.email.value.length)

                         {

                                alert("非法Email地址!");

                                form1.email.focus();

                                return false;

                         }

                 }

                 else

                 {

                        alert("请输入Email!");

                        form1.email.focus();

                        return false;

                 }

          }

    </script>

  </head>



  <body>

    <form action="Accept.jsp" method="post" name="form1" onsubmit="on_submit()">

          新用户注册<br>

          用户名(*):<input type="text" name="username" size="20"><br>

          密&nbsp;码:(*):<input type="password" name="userpassword" size="20"><br>

          再输入一次密码(*):<input type="password" name="reuserpassword" size="20"><br>

          性别:<input type="radio" value="男" checked name="sex">男

              <input type="radio" value="女" name="sex">女<br>

          出生年月:<input name="year" size="4" maxlength=4>年

                        <select name="month">

                               <option value="1" selected>1</option>

                               <option value="2">2</option>

                               <option value="3">3</option>

                               <option value="4">4</option>

                               <option value="5">5</option>

                               <option value="6">6</option>

                               <option value="7">7</option>

                               <option value="8">8</option>

                               <option value="9">9</option>

                               <option value="10">10</option>

                               <option value="11">11</option>

                               <option value="12">12</option>

                        </select>月

                        <input name="day" size="3" maxlength=4>日<br>

              电子邮箱(*):<input name="email" maxlength=28><br>

              家庭住址:<input type="text" name="address" size="20"><br>

              <input type="submit" value="提交" name="B1">

              <input type="reset" value="全部重写" name="B2">

    </form>

  </body>

</html>

Accept.jsp的源代码:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>接受新用户注册</title>

  </head>

  <%!

     public String codeToString(String str)

     {

            //处理中文字符串的函数

            String s=str;

            try {

                   byte tempB[]=s.getBytes("IOS-8859-1");

                   s=new String(tempB);

                   return s;

            }catch(Exception e) {

                   return s;

            }

     }

  %>

  <%request.setCharacterEncoding("utf-8"); %>

  <body>

    这是新用户注册所提交的数据:

    <br>

    <% request.setCharacterEncoding("utf-8");%>

    用户名是:<%=codeToString(request.getParameter("username"))%><br>

    密码是:<%=codeToString(request.getParameter("userpassword"))%><br>

    性别是:<%=codeToString(request.getParameter("sex"))%><br> 

    出生年月是:<%=request.getParameter("year")+"-"+request.getParameter("month")+"-"+request.getParameter("day") %><br>

    电子邮箱是:<%=request.getParameter("email") %><br>

    家庭住址是:<%=codeToString(request.getParameter("address")) %><br>

  </body>

</html>

运行结果:

(三)页面重定向

 

  1. 在建立的 WEB 工程中建立 Redirect.jsp 文件
  2.  程序功能:实现页面的重定向。 
  3.  Redirect.jsp 程序的源代码如下
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>页面重定向</title>

  </head>



  <body>

    <% //页面重定向程序片

    String url;

    url=request.getParameter("goaddress");

    if(url!=null)

    {

          response.sendRedirect(url);

    }

    %>

    <form name="form1" action="Redirect.jsp" method="post">

          页面重定向:

          <select name="goaddress" onchange="javascript:form1.submit()">

                 <option value="">=======请选择=======</option>

                 <option value="http://www.csai.cn">中国系统分析员</option>

                 <option value="http://www.51cmm.com">软件工程专家网</option>

                 <option value="http://www.hnii.gov.cn">湖南省信息力</option>

                 <option value="http://www.temco.com.cn">天工远科信息技术有限公司</option>

          </select>

    </form>

  </body>

</html>

运行结果:

(四)session属性设置和获取

1 在建立的 WEB 工程中建立 Login.jsp LoginInfor.jsp 文件。

 程序功能:实现 session 属性在整个页面缓存信息的保存和销毁。

程序源代码如下:

Login.jsp

<%@ page contentType="text/html;charset=gb2312" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

  <title>用户登录</title>

  <script>

   function on_submit(){

        //验证数据的合法性

        if(form1.username.value==""){

             alert("用户名不能为空,请输入用户名!");

             form1.username.focus();

             return false;

      }

       if(form1.userpassword.value==""){

           aler("用户名密码不能为空,请输入密码!");

           form1.userpassword.focus();

           return false;

       }

     }

  </script>

  <%!

   public String codeToString(String str){

       //处理中文字符串的函数

       String s=str;

       try{

            byte tempB[]=s.getBytes("ISO-8859-1");

            s=new String(tempB);

            return s;

           

       }catch(Exception e){

        return s;

       }

   }

  %>

   <%

    String username=request.getParameter("username");

    String userpassword=request.getParameter("userpassword");

    if(username!=null & userpassword!=null){

     //如果用户名和密码都合法,记下用户名,一般吧用户名和密码存在数据中,

     //用数据库中的信息与提交的用户名和密码比较进行用户合法性检查

     //这些内容在后续章节中会继续学习

     session.setAttribute("username", codeToString(username));

     response.sendRedirect("LoginInfo.jsp");

    }

  %>

  </head>





  <body>

   <table align="center">

   <form name="form1" menthod="post" action="Login.jsp" onsubmit="on_submit();">

      <tr align="center">

      <td>用户登录</td>

      </tr>

      <tr align="center">

      <td>请输入用户名:<input type="text" name="username" size="20"></td>

      </tr>

      <tr align="center">

      <td>请输入密码:&nbsp;&nbsp;&nbsp;<input type="password" name="userpassword" size="20"></td>

      </tr>

      <tr align="center">

      <td>

         <input type="submit" value="提交" name="B1">

         <input type="reset" value="全部重写" name="B2">

      </td>

      </tr>

   </form>

   </table>

  </body>

</html>

LoginInfo.jsp的源代码:

<%@ page contentType="text/html;charset=gb2312" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>用户登录成功</title>

  </head>



  <body>

  <table>

    用户登录成功!

    您的用户名是:<%=(String)session.getAttribute("username") %>

  </table>

  </body>

</html>

(五)用out对象输出表格程序

1 在建立的WEB工程中建立Outapp.jsp文件

程序功能:通过使用out输出静态表格,从而掌握利用内置对象实现静态网页的方法。

Outapp.jsp程序源代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>out应用示例</title>

  </head>



  <body>

    <%

       out.print("<table border='1' width='100%'><tr><td width='100%' colspan='4'>");

        out.print("参会人员名单(用out输出表格)"+"</tr>");

        out.print("<tr><td width='25%'>"+"姓名"+"</td>");

        out.print("<td width='15%'>"+"年龄"+"</td>");

        out.print("<td width='15%'>"+"性别"+"</td>");

        out.print("<td width='45%'>"+"工作单位"+"</td></tr>");

        out.print("<tr><td width='25%'>"+"邓子云"+"</td>");

        out.print("<td width='15%'>"+"26"+"</td>");

        out.print("<td width='15%'>"+"男"+"</td>");

        out.print("<td width='45%'>"+"长沙市商业银行"+"</td></tr>");

        out.print("<tr><td width='25%'>"+"张赐"+"</td>");

        out.print("<td width='15%'>"+"27"+"</td>");

        out.print("<td width='15%'>"+"男"+"</td>");

        out.print("<td width='45%'>"+"长沙凌远信科技有限公司"+"</td></tr>");

        out.print("<tr><td width='25%'>"+"袁数雄"+"</td>");

        out.print("<td width='15%'>"+"31"+"</td>");

        out.print("<td width='15%'>"+"男"+"</td>");

        out.print("<td width='45%'>"+"计算机学院"+"</td></tr>");

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

    %>

  </body>

</html>

运行截图:

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页