初入Java后端之jsp

  • JSP是啥?

JSP其实是一种综合HTML、XHTML、XML的代码,能够动态地创建网页,与Java servlet密不可分。JSP页面实质也是一个HTML页面,只不过它包含了用于产生动态网页内容的Java代码。

  • JSP结构

结构和下面的处理很相关(自己画的可能比较丑,能看懂就行)

 

  • JSP处理  

JSP向web server发出请求,web服务器的组件调用Servlet,执行servlet类(Java的一种类),然后servlet将处理结果嵌入HTTP response并生成HTML,返回给服务器。

  • JSP生命周期

从其被创建到最终被销毁的时间就可以简单的理解成生命周期

代码实例:

public void jspInit(){
  // 初始化代码
}

public void jspDestroy()
{
   // 清理代码
}

生命周期内则是一些服务器处理代码

 

  • JSP语法注意(仅个人,不代表全部)

声明:<%! int i = 0; %>

表达式:<%= 表达式 %>    例:<%= (new java.util.Date()).toLocaleString()%>

指令标签的使用:

格式:<%@ directive attribute="value" %> 

例:<%@ include file="文件相对 url 地址" %>

<jsp:directive.include file="文件相对 url 地址" />

行为标签

行为标签主要有这10种,使用很简单,查看用法即可

例如:实例化对象并设置属性

<jsp:useBean id="myName" ... />
...
<jsp:setProperty name="myName" property="someProperty" .../>
  • JSP隐藏(内置)对象

request对象

常用方法方法介绍
String getParameter(String name)返回name指定参数的参数值
String[] getParameterValues(String name)返回包含参数name的所有值的数组
void setAttribute(String,Object)存储此请求中的属性
Object getAttribute(String name)返回指定属性的属性值
String getContentType()得到请求体的MIME类型
String getProtocol()返回请求用的协议类型及版本号
String getServerName()返回接受请求的服务器主机名
int getServerPort()返回服务器接受此请求所用的端口号
String getCharacterEncoding()返回字符编码方式
void setCharacterEncoding()设置请求的字符编码方式
int getContentLength()返回请求体的长度(以字节数)
String getRemoteAddr()返回发送此请求的客户端IP地址
String getRealPath(String path)返回一虚拟路径的真实路径
String request.getContextPath()返回上下文路径

request的一个重要用途就是获取客户端的基本信息。下面用程序来测试作用:

<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="gb2312" %>
<html>
  <head>
    <title>requestTest</title>
  </head>
  <body>
  提交方法:<%= request.getMethod()%><br>
  请求的URL地址:<%=request.getRequestURI()%><br>
  协议名称:<%=request.getProtocol()%><br>
  客户端请求服务器文件的路径:<%=request.getServletPath()%><br>
  URL的查询部分:<%=request.getQueryString()%><br>
  服务器的名称:<%=request.getServerName()%><br>
  服务器的端口号:<%=request.getServerPort()%><br>
  远程客户端的IP地址:<%=request.getRemoteAddr()%>
  </body>
</html>

response对象

response与request是一对相对应的内置对象,response可以理解为客户端的响应

response对象的功能分为以下四种:

(1)设置响应头信息

(2)发送状态码

(3)设置响应正文

(4)重定向

设置响应头信息

使用该方法设置的响应头最终会发送给客户端浏览器!

(1)response.setHeader(“content-type”, “text/html;charset=utf-8”):设置content-type响应头,该头的作用是告诉浏览器响应内容为html类型,编码为utf-8。而且同时会设置response的字符流编码为utf-8,即response.setCharaceterEncoding(“utf-8”);

(2)response.setHeader("Refresh","5; URL=http://www.baidu.com"):5秒后自动跳转到百度主页。

设置状态码及其他方法

(1)response.setContentType("text/html;charset=utf-8"):等同与调用response.setHeader(“content-type”, “text/html;charset=utf-8”);

(2)response.setCharacterEncoding(“utf-8”):设置字符响应流的字符编码为utf-8;

(3)response.setStatus(200):设置状态码;

(4)response.sendError(404, “您要查找的资源不存在”):当发送错误状态码时,Tomcat会跳转到固定的错误页面去,但可以显示错误信息。

重定向

response.setHeader("Location", "http://www.baidu.com");

和response.sendRedirect("http://www.baidu.com")两种方法

 

session对象

session的生命周期:当用户访问某个页面到关闭浏览器,这段使时间。

session和cookie:session和cookie对象是一一对应关系。JSP引擎会将创建好的session对象存放在对应的cookie中。

主要方法:
1. getAttribute( String name )
获取指定名字name相联系的信息.

2. getAttributeNames()
返回Session对象中存储的每一个属性对象,其结果为一个类举的实例.

3. getCreationTime()
返回Session被创建的时间.最小单位为千分之一秒.

4. getId()
此方法返回惟一的标识,这些标识为每个Session而产生.当只有一个单一的值与一个Session联合时,或当日志信息与先前的Session有关时,它被当做键名用.

5. GetLastAccessedTime()
返回当前Session对象最后被客户发送的时间,最单位为千分之一秒.

6. GetMaxInactiveInterval()
返回总时间(秒),负值表示Session永远不会超时.该时间为该Session对象的生存时间.

7. removeAttribute( String name )
删除与提定名字name的相联系的信息.

8. setAttribute( String name , java.lang.Object value )
设置指定名字name的属性值value,并将之存储在Session对象中.

session一般应用在判断用户是否登录

实例:

<%@page contentType="text/html;charset=GB2312"%>
<html>
  <head>  </head>
  <body>
  <%String s = session.getId(); //获取session ID号  %>
    <p>你的session对象ID是:</p>
<%=s %>  <%!
    int Num = 0; //定义前面要加!号
    synchronized void countPeople() { //同步方法
      Num++;
    }
  %>
  <%
    if (session.isNew()) { //判断是否为新用户
      countPeople();
      String str = String.valueOf(Num);
      session.setAttribute("count", str); //将str 添加到session对象中
    }
  %>
    <p> 
你是第<%=(String)session.getAttribute("count")%>个访问本站的人
    </p>
    <!--将session对象的count值取出-->
  </body>
</html>

 

application对象

application常用的方法

  • public void setAttribute(String name,Object value)使用指定名称讲对象绑定到此会话。

  • public Object gerAttribute(String name)返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则放回null
  • Enumeration getAttributeNames()返回所有可用属性名的枚举
  • Strring getServerInfo()返回jsp(Servlet)引擎及版本号

其他四个对象

  • out(JspWriter):等同与response.getWriter(),用来向客户端发送文本数据;
  • config(ServletConfig):对应“真身”中的ServletConfig;
  • page(当前JSP的真身类型):当前JSP页面的“this”,即当前对象,引用为Object类型;
  • pageContext(PageContext):页面上下文对象,它是最后一个没讲的域对象;
  • exception(Throwable):只有在错误页面中可以使用这个对象;

个人JSP学得较浅,各类书籍对jsp的介绍也不同,可参考书籍《JSP从零开始学(刘鑫)》《head first servlet & jsp》

 

 

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值