JavaWeb之JSP


前言:我们都知道,页面中的数据大多数都是保存在数据库中的,当我们要在页面中使用数据的时候,就要通过数据库将数据渲染到页面中显示,这才是数据的来源,而不是我们在做页面的时候将数据写死。因此需要java后台将数据传送到前端页面中,就是用到了JSP,动态页面格式。

一、JSP概述

(1) 什么是JSP
—JSP(Java Server Pages)是JavaWeb服务器端的 动态资源 。它与html页面的作用是相同的, 显示数据和获取数据 。

(2)JSP的组成

JSP = html + Java脚本(代码片段) + JSP动态标签

在这里插入图片描述

二、JSP语法

2.1 JSP脚本

JSP脚本就是Java代码片段,它分为三种:

  • <%…%>:Java语句;
  • <%=…%>:Java表达式;
  • <%!..%>:Java定义类成员;
<%@ page language="java"   import="java.util.*"   pageEncoding="UTF-8"  %>
<!DOCTYPE HTML>
<html> 
    <head>	
        <title>JSP演示</title> 
    </head>  
    <body>  
        <h1>JSP演示</h1>  
        <%  	
           // Java语句  	
           String s1 = "hello jsp";  	
           // 不会输出到客户端,而是在服务器端的控制台打印  	
           System.out.println(s1);  
         %> 
          <!-- 输出到客户端浏览器上 -->  
          输出变量:<%=s1 %><br/>  
          输出int类型常量:<%=100 %><br/>  
          输出String类型常量:<%="你好" %><br/>  <br/> 
       </body>
</html>

结果:
在这里插入图片描述
在这里插入图片描述

2.2 内置对象out

out对象在JSP页面中无需创建就可以使用,它的作用是用来向客户端输出。

 <body>  
     <h1>out.jsp</h1>	
     <%
        //向客户端输出		
        out.print("你好!");	
     %> 
</body>

结果:
在这里插入图片描述

其中<%=…%>与out.print()功能是相同的!它们都是向客户端输出,例如:

<%=s1%>等同于<% out.print(s1); %>

<%=”hello”%>等同于<% out.print(“hello”); %>,也等同于直接在页面中写hello一样。

2.3 多个<%…%>可以通用

在一个JSP中多个<%…%>是相通的。
例如1:

 <body>  
     <h1>out.jsp</h1>	
     <%		
        String s = "hello";	
     %>	
      <%		
         out.print(s);	
      %> 
</body>

结果1:
在这里插入图片描述

例如2 循环打印表格:

<body>  
    <h1>表格</h1>		
    <table border="1" width="50%">		
        <tr>			
            <th>序号</th>			
            <th>用户名</th>			
            <th>密码</th>		
        </tr>	
        <%		    
           for(int i = 0; i < 10; i++) {
        %>		
        <tr>			
            <td><%=i+1 %></td>			
            <td>user<%=i %></td>			
            <td><%=100 + 1 %></td>		
        </tr>	
        <%		
           }	
        %>	
  </table> 
</body>

结果:
在这里插入图片描述

三、JSP九大内置对象

在JSP中无需创建就可以使用的9个对象,它们是:

(1) out(JspWriter):等同与response.getWriter(),用来向客户端发送文本数据;

常用方法:

out.print():输出各种类型数据。

out.newLine():输出一个换行符。

out.close():关闭流。

(2)config(ServletConfig):对应“真身”中的ServletConfig;主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。

(3)page(当前JSP的真身类型):当前JSP页面的“this”,即当前对象;

(4)pageContext(PageContext):页面上下文对象,它是最后一个没讲的域对象;

(5)exception(Throwable):只有在错误页面中可以使用这个对象;

(6)request(HttpServletRequest):即HttpServletRequest类的对象;主要用于接受通过http协议传送到服务器的数据,request对象的作用域为一次请求.

常用方法:

Request常用的方法:getParameter(String strTextName) 获取表单提交的信息.

getProtocol() 获取客户使用的协议。

String strProtocol=request.getProtocol();

getServletPath() 获取客户提交信息的页面。String strServlet=request.getServletPath();

getMethod() 获取客户提交信息的方式 String strMethod=request.getMethod();

getHeader() 获取HTTP头文件中的accept,accept-encoding和Host的值,String strHeader=request.getHeader();

getRermoteAddr() 获取客户的IP地址。String strIP=request.getRemoteAddr();

getRemoteHost() 获取客户机的名称。String clientName=request.getRemoteHost();
getServerName() 获取服务器名称。 String serverName=request.getServerName();
getServerPort() 获取服务器的端口号。 intserverPort=request.getServerPort();
getParameterNames() 获取客户端提交的所有参数的名字。

(7)response(HttpServletResponse):即HttpServletResponse类的对象;
对客户端的请求,主要将jsp容器处理过 的对象传回客户端,它只在jsp页面有效。

常用方法:

setContentType(String s),改变contentType的属性值

response.sendRedirect(index.jsp);重定向

(8)application(ServletContext):即ServletContext类的对象;只要服务器一启动就会创建该对象,直到服务器关闭,所有客户的application对象都是同一个

常用方法:

setAttribute(String key,Object obj):将参数Object指定的对象obj添加到Application对象中,并为添加的对象指定一个索引关键字。

getAttribute(String key):获取Application对象中含有关键字的对象。

(9)session(HttpSession):即HttpSession类的对象,不是每个JSP页面中都可以使用,如果在某个JSP页面中设置<%@page session=”false”%>,说明这个页面不能使用session。

常用方法:

public String getId()h获取session对象的id

public void setAttribute(String key,Object obj)将参数Object指定的对象obj添加到Session对象中,并为添加的对象指定一个索引关键字。

public Object getAttribute(String key):获取Session对象中含有关键字的对象。

public Boolean isNew():判断是否是一个新的客户。

在这9个对象中有很多是极少会被使用的,例如:config、page、exception基本不会使用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小温豌豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值