JSP技术及JSP语法技术

JSP技术及JSP语法技术,第1张

实验一、JSP技术及JSP语法基础

          

一、实验目的

1 了解MyEclipse 开发环境的构成

2 掌握MyEclipse 下JAVA  EE开发环境的设置

3 掌握JSP技术及JSP语法的基础内容

二、实验内容

1.测试简单 jsp 文件:

用任意文本编辑器建立一个 test.jsp 文件,

内容如下:

<%

out.print("Hello World!");

%>

将test.jsp放在 %catalina_home%\webapps\ROOT 目录下

在地址栏中输入: http://127.0.0.1:8080/test.jsp查看运行效果。

实验结果:

2.在MyEclipse集成环境下编写Java web项目

(1)安装MyEclipse;

(2)设置MyEclipse与Tomcat之间的关联;

(3)新建Java web项目test(web project),并将其部署到tomcat;

     在项目中(webroot文件夹)新建两个jsp文件:

      input.jsp实现用户信息的输入;

      receive.jsp将前者输入的信息输出

 (4)发布运行

实验过程:

源代码:

Input.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"

    pageEncoding="utf-8"%>









Insert title here





   

<% out.print("请输入下列信息:"); %>
  输入你的姓名: 
 
  选择性别:男  
 
  选择您喜欢的歌手:张歌手   李歌手   王歌手   刘歌手
    
             

Receive.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"

    pageEncoding="utf-8"%>









Insert title here





 

   <% 

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

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

    String[] singers=request.getParameterValues("singer");%>
   <%  out.println("姓名:"+name+"
");%>
<% out.println("你的性别:"+sex+"
");%>
<% out.print("你喜欢的歌手是:"); for(int i=0;i   

实验结果:

 

 

(4)查看项目部署到服务器上的位置(%catalina_home%\webapps)和内容;

   将%catalina_home%\webapps\test中的input.jsp和receive.jsp拷贝到%catalina_home%\webapps\ROOT 目录下,在地址栏中输入: http://127.0.0.1:8080/input.jsp查看运行效果。

(5)查看%JAVA_HOME%\work\Catalina\localhost\test\org\apache\jsp中的内容,理解tomcat服务器对.jsp文件的解析过程。

3.JSP语法元素

输入并执行下面JSP页面,文件名为counter.jsp

<%@ page language="java" %>

<%! int count = 0; %>

<% count++; %>

Welcome! You are visitor number

<%= count %>

【问题1】该JSP页面包含哪些JSP语法元素。在浏览器中访问该页面,输出结果如何?多次刷新页面,结果如何?

1)<%@page language=“”%>是Page指令,<%!---%>是JSP变量注释,<% ---%>是JSP程序段注释,<%= ---%>是JSP输出结果注释。

2)输出结果是:Welcome! You are visitor number 1

3)多次刷新页面的结果情况:每刷新一次页面,number后面的数字会加1

【问题2】打开counter.jsp转换后的源文件counter_jsp.java,对应的类文件在哪里?文件名是什么?

类文件地址:在该项目的的build文件夹里面,必须从资源管理器里面找到该项目的build文件夹才能看见类文件,文件名为:counter_jsp.class

【问题3】查看count变量是在哪里声明的?

        在counter_jsp.java里面声明的。

【问题4】将上面JSP页面中的<%! int count = 0; %>一行改为<% int count = 0; %>,页面能否正常执行,它与上面页面有什么区别?

         能正常执行,它与上面页面的区别是,每次刷新浏览器页面number后面的数字都保持不变,原因:上面页面定义的变量是全局变量,而这个页面定义的是局部变量。

4.了解隐含对象是如何定义的(选做)

   在helloapp应用程序中编写一个名为implicit.jsp的页面,内容为空。然后在浏览器中访问该页面。接下来打开\work\Catalina\localhost\helloapp\org\apache\jsp目录中的implicit_jsp.java文件,查看隐含对象是如何定义的。

完成下面的填空:

JSP页面转换后定义的类名为:( implicit?_jsp.java  )

该类继承了哪个类:(org.apache.jasper.runtime.HttpJspBase )

隐含对象request的类型为:(javax.servlet.http.HttpServletRequest   

隐含对象response的类型为:(javax.servlet.http.HttpServletResponse  

隐含对象pageContext的类型为:( javax.servlet.jsp.PageContext   )

隐含对象session的类型为:(javax.servlet.http. HttpSession  )

隐含对象application的类型为:(javax.servlet.ServletContext)

隐含对象config的类型为:(javax.servlet.ServletConfig)

隐含对象out的类型为:( javax.servlet.jsp.JspWriter)

隐含对象page的类型为:(  java.lang.Object  )

修改implicit.jsp页面,在中加入下面一行:

<%@ page isErrorPage = "true" %>

然后再访问该页面,再次查看上述Java源文件,则可看到exception隐含对象的定义。

隐含对象exception的类型为:( java.lang.Throwable)

说明下面4个隐含对象是如何得到的:

application(pageContext.getServletContext();)

config   (pageContext.getServletConfig();)

session   (pageContext.getSession();)

out      (pageContext.getOut();)

5.各种隐含对象与作用域变量的使用

【步骤1】request隐含对象的使用(request.jsp)

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

<%

  String remoteAddr = request.getRemoteAddr();

  String remoteHost = request.getRemoteHost();

  int serverPort = request.getServerPort();

 %>

你的IP地址为:<%=remoteAddr %>

你的主机名为:<%=remoteHost %>

服务器的端口号为:<%=serverPort %>

【步骤2】out隐含对象的使用(out.jsp)

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

Out Example

out对象的使用

<%

  out.print("学习使用out对象");

  int buffer = out.getBufferSize();

  int available = out.getRemaining();

 %>

 

 out对象的类型为:<%= out.getClass().getName() %>

 BufferSize=<%= buffer %>

 Available=<%= available %>

【步骤3】application隐含对象的使用(application.jsp)

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

<%

  int number = 0;

  Integer num =(Integer)application.getAttribute("num");

  if(num==null){

    application.setAttribute("num",new Integer(number));

  }

  else{

    number = num.intValue()+1;

    application.setAttribute("num",new Integer(number));

  }

 %>

application example

application对象示例


本页面文件的实际路径是:
<%=application.getRealPath("application.jsp") %>

application对象中变量num的值为:<%=application.getAttribute("num") %>

【步骤4】session隐含对象的使用(session.jsp)

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

<%@ page session="true" %>

<%

  session.setAttribute("user","欧阳清风");

%>

您的会话ID是:<%=session.getId()%>

session对象中存放的变量user的值为:<%=session.getAttribute("user")%>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/905738.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-15
下一篇 2022-05-15

发表评论

登录后才能评论

评论列表(0条)

保存