JSP

1:JSP

 <% .. %> - 都在_jspService方法中。

  <%=..  %> JSP输出语句。

  隐藏对象 : 9个。

 

JSP- MVC - >加强MVC

在JSP中的EL表达式

及JSTL标签的开始

 

--再去修改项目

à 增强它的里面的功能  》增强界面。

 1:JSP的语法

1:JSP指令

<%@   %> 开始的位置

如:

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

pageEncoding="UTF-8"%>

 

指令

功能

示例

Page指令

用于配置jsp代码编译成java代码时生成的格式的。

见上面的示例

Include指令

静态包含

 

被静态的包含在的页面,与包含页面,共享所有数据。

当A页面静态包含B页面时,

A页面上声明的所有内容,B页面都可以使用。

B.jsp不会独立的执行,也不会被编译成b_jsp.java文件。

 

taglib

标签指令

在jsp页面,标准的是不可以开发Java代码的。

可以使用标签来替代。

标签的本质默认就是Java代码

<c:set var="name" value="Jack" scope="request"></c:set>

<hr>

<hr>

<c:out value="${name}"></c:out>

 

 

1:page指令

autoFlush="true"

  由于jsp页面上的数据,是通过jspWiter输出的,Writer对象,默认的自动刷出到页面上去的。当缓存放满以后。

 import

<%@page import="java.io.PrintWriter,java.io.*"%

 

是否忽略EL表达式

isErrorPath/errorPage

isErrorPage是指自己是显示异常的界面,声明isErrorPage=true以后,添加一个新的隐藏变量exception : Throwable

errorPage  是指出错以后,去哪儿显示。

 

可以在web.xml中配置异常的页面:

  <error-page>

   <error-code>500</error-code>

   <location>/jsps/showerror.jsp</location>

  </error-page>

  <error-page>

   <exception-type>java.lang.NullPointerException</exception-type>

   <location>/jsps/null.jsp</location>

  </error-page>

 

 2:JSP注释

3:JSP声明

用于声明成员变量与成员方法的

4:JSP动作-也叫Jsp标签  很少用,但总是考

<jsp:forward page=”…./>  转发到某个资源上去。



 

 

附加:

 

1:forward的方式

 

HttpSerletRequest类

 RequestDispatcher

getRequestDispatcher(java.lang.String path) 
          Returns a RequestDispatcher object that acts as a wrapper for the resource located at the given path.

 

Path 可以   不以  / 开始,则是指当前这个Servlet所在的目录。

  http://local/20160425/abc/one

      forward(two);

   将去的目录是这儿:

     http://local/20160425/abc/two

 

     可以  以  / 开始,则表示,在当前项目的根下

http://local/20160425/abc/one

      forward(/two);

   将去的目录是这儿:

     http://local/20160425/two

 

 

 

 

ServletContext

 RequestDispatcher

getRequestDispatcher(java.lang.String path) 
          Returns a RequestDispatcher object that acts as a wrapper for the resource located at the given path.

 

必须总是以/开始,如果不以/开始,则异常。

 

The pathname must begin with a "/" and is interpreted as relative to the current context root. Use getContext to obtain a RequestDispatcher for resources in foreign contexts. This method returns null if the ServletContext cannot return a RequestDispatcher.

 

 

 

 

 

 

2:include 动态包含

 被包含的目标先执行一次,将执行的结果返回给源页面。

 

<p>主页</p>

<jsp:include page="/jsps/b.jsp"></jsp:include>

 

 

3:Jsp:useBean  创建一个JavaBean在某个指定域中。默认放到pageContext中

 

取值和设置值:

<jsp:useBean id="pp" class="cn.domain.Person"></jsp:useBean>

<!-- 设置属性 -->

<jsp:setProperty property="name" name="pp" value="Jack"/>

<jsp:setProperty property="age" name="pp" value="39"/>

<br>

<jsp:getProperty property="name" name="pp"/>

<br>

 

 

 

 

小结:

   指令  - 重点

   Java代码块  重点

   输出语句

   隐藏对象

   声明

   动作  jsp:forward

 

 

 

2:前面的项目的问题

 

1:几乎是一个功能,一个Servlet

将所有相关功能,如CRUD 会议,放到MeetingServlet中去。

 

扩展HttpServlet来实现一个Serlvet可以做多个功能。

 

package cn.meeting.core;

 

import java.io.IOException;

import java.lang.reflect.Method;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

/**

 * 抽象类,不能配置到web.xml中

 */

public abstract class BaseServlet extends HttpServlet {

/**

 * 直接重写service方法,避免httpServlet分发

 */

@Override

public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

// 在儿设置请求的编码类型,在其他的servlet中就不用设置了

req.setCharacterEncoding("UTF-8");

// 同时设置响应的格式

resp.setContentType("text/html;charset=UTF-8");

// 接收一个参数,用于执行用户指定的方法

String methodName = req.getParameter("cmd");

if (methodName == null || methodName.trim().equals("")) {

methodName = "execute";

}

// 通过反射来调用子类的方法

try {

Method method = this.getClass().getMethod(methodName, HttpServletRequest.class,HttpServletResponse.class);

method.invoke(this, req,resp);

} catch (Exception e) {

throw new RuntimeException(e);

}

 

}

 

/**

 * 要求子类,必须要拥有一个默认的方法

 */

public abstract void execute(HttpServletRequest req, HttpServletResponse resp) throws Exception;

}

 

 

你可能感兴趣的:(JSP)