zoukankan      html  css  js  c++  java
  • JSP_Notes_1

    【1】jsp=html+java片段+jsp标签+js(css)jsp允许在页面里编写java代码,并且允许开发人员在页面里获得request,response等web开发常用对象,实现与浏览器的交互,所以jsp也是一种动态web开发技术。

    【2】修改编码格式:Windows---->Preferences---->myeclipse Enterprise Workbench---->File and Editors----->JSP--->把这个目录下的Encoding选为你要设置

    【3】访问每一个jsp都是访问servlet来响应你的请求,tomcat->work里
    final javax.servlet.jsp.PageContext pageContext;
        javax.servlet.http.【HttpSession session】 = null;
        final javax.servlet.【ServletContext application】;
        final javax.servlet.【ServletConfig config】;
        javax.servlet.jsp.【JspWriter out = null】;
        final java.lang.Object 【page = this】;//这里的this就是指这个jsp对应的servlet,所以当你需要再jsp里使用有关servlet的信息时,可以直接用page.xxx
        javax.servlet.jsp.JspWriter _jspx_out = null;
        javax.servlet.jsp.PageContext _jspx_page_context = null;
       
    【4】服务器在调用你的jsp时,已经棒你把相关的参数传递进去了,例如request.所以在jsp里你都可以直接用。servlet里的ServletContext在jsp里就是application.

    【5】Javabean就是一个封装数据的实体,是一个遵循特定写法的java类,需要满足三个要求:
    1.这个java类必须具有一个无参的构造函数
    2.属性必须私有化
    3.私有化的属性必须通过public类型的方法暴露给其他的程序,并且方法的命名也必须遵循一定的命名规范。

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------
    【1】服务器在调用JSP时,会直接帮你定义PageContext,Request,Session,ServletContext.
    final javax.servlet.jsp.PageContext 【Context】;
          javax.servlet.http.HttpSession 【sessio = null;
    final javax.servlet.ServletContext 【application】;
    final javax.servlet.ServletConfig 【config】;
          javax.servlet.jsp.JspWriter 【out】 = null;
    final java.lang.Object 【page】 = this;                      //当你要得到当前JSP对于的Servlet时,就可以使用page.xxx
          javax.servlet.jsp.JspWriter _jspx_out = null;
          javax.servlet.jsp.PageContext _jspx_page_context = null;


    <!-- usebean标签的标签体只在usebean实例化时才执行 -->
    <body>
      <jsp:useBean id="Person" class="xby.domain.Person" scope="page"></jsp:useBean>
      <%=Person.getName() %>
    </body>

    【2】
    <!-- 手动为bean属性赋值 -->
    <jsp:useBean id="Person" class="xby.domain.Person" />
    <jsp:setProperty name="Person" property="name" value="xby!"/>
    <%=Person.getName() %>

    【3】
       <!-- 利用请求参数给bean属性赋值 -->
      <jsp:useBean id="people" class="xby.domain.Person" scope="page"/>
      <jsp:setProperty name="people" property="name" param="name"/>
      <jsp:setProperty property="age" name="people" param="age"/>//支持把客户机的字符串输入进行8种基本输出类型的转换
      <%=people.getName() %>
      <br>
      <%=people.getAge() %>

    【4】
    <!--相当于<%=Person.getName() %>,不过要是属性值为空,就会输出null-->
    <jsp:getProperty property="name" name="people"/>

    【5】EI表达式:(要是属性值为空,就会输出空的字符串)做数据输出很方便,不需要做任何的判断

    【6】<%=%>脚本表达式:用于向浏览器输出数据
    多个静态代码块,变量和函数可以定义在一个JSP声明中,也可以分别单独定义在多个JSP声明中。JSP隐式对象的作用范围仅仅限于Servlet的_JSPService方法,所以在JSP声明中不能使用这些隐式对象。
    【7】<% JAVA CODE %>JSP脚本片段:不同片段之间可以使用其他模板。而且各个片段之间代码可以相互访问

    【8】<%-- --%>JSP注释  <!-- -->HTML注释(浏览器认识)

    【8】<%! %>JSP声明:JSP页面中编写的所有代码,默认会被翻译到SEVLET的service方法中,而JSP声明代码会被翻译到_JSPService方法的外面,所以JSP声明可以用于定义JSP页面转换成Servlet程序的静态代码块,成员变量和方法。

    【9】JSP指令(directive):是为了JSP引擎设计的,他们并不处理产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。page Include taglib
    <%@ 指令 contentType="text/html;charset=gb2312"%>

    【10】error page:
     <error-page>
         <exception-type></exception-type>
         <location></location>
     </error-page>
     
     <error-page>
        <error-code>404</error-code>
        <location></location>
     </error-page>

    【11】9大隐式对象:
    1.HttpServletRequest    request;
    2.HttpServletResponse   response;
    3.PageContext           pageContext;
    4.HttpSession           session;
    5.ServletContext        application;
    6.ServletConfig         config;
    7.JspWriter             out;
    8.Object                page;(this)
    9.Exception

    pageContext对象不仅封装了对其他8大隐式对象的引用,而且它自身还是一个域对象,可以用来保存数据。并且,这个对象还封装了web开发中经常涉及到的一些常用操作,例如引入和跳转其他资源,检索其他域对象中的属性等。

    【12】JSP标签:
    1.编写一个实现tag接口的java类
    2.在tld文件中对标签处理类进行描述(WEN-INF下)
    3.在JSP页面中导入和使用自定义标签
     
       <jsp:forward page="/"></jsp:forward>
       <jsp:include page=""></jsp:include>  <%--相等于pageContext.include(""); --%>
       <jsp:param value="" name=""/>
      
    【13】标签处理类:编写一个实现Tag接口的JAVA类,把页面java代码移到这个java类中
          编写标签库描述符文件(tld),在tld文件中把标签处理类描述成一个标签。
         
    【14】Tag :JSP页面不可以有一行JAVA代码 因为JSP引进了pageContext
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@taglib uri="http://xby.com" prefix="ViewIp"%>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head> 
        <title>Tag Lib</title>
      </head>
     
      <body>
               您当前的IP是:<ViewIp:ViewIp/>
      </body>
    </html>
    /////////////////////////////////////////////////////////////////////////////////
    package xby.web;

    import java.io.IOException;

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.JspWriter;
    import javax.servlet.jsp.tagext.TagSupport;

    public class ViewIpTag extends TagSupport {

     @Override
     public int doStartTag() throws JspException {
      // TODO Auto-generated method stub
      JspWriter out = pageContext.getOut();
      
      HttpServletRequest request =  (HttpServletRequest)this.pageContext.getRequest();
      
      String ip = request.getRemoteAddr();
      try {
       out.write(ip);
      } catch (IOException e) {
       // TODO Auto-generated catch block
       throw new RuntimeException(e);
      }
      
      return super.doStartTag();
     }
    /////////////////////////////////////////////////////////////////////////////////////
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE taglib
            PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
            "http://java.sun.com/j2ee/dtd/web-jsptaglibrary_1_2.dtd">

    <taglib>

      <tlib-version>1.0</tlib-version>
      <jsp-version>1.2</jsp-version>
      <short-name>xby</short-name>
      <uri>http://xby.com</uri>


       <tag>
        <name>ViewIp</name>
        <tag-class>xby.web.ViewIpTag</tag-class>
        <body-content>empty</body-content>
       </tag>
     
      </taglib>

  • 相关阅读:
    前端html
    后端Django和前段vue.js结合 快速搭建框架
    机器学习——matplotlib
    机器学习——pandas
    机器学习——概念
    机器学习——numpy
    django创建项目流程
    django2.0中配置文件的配置
    django项目的大致流程
    django中的数据库
  • 原文地址:https://www.cnblogs.com/boyangx/p/4084858.html
Copyright © 2011-2022 走看看