1.JSP入门

2017-01-12 07:47:46来源:作者:人点击

一.JSP基础

1.JSP概述

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

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



2.JSP语法 

<%=…%>:输出!打到这里内容等同与打到response.getWriter().print(…)中了。

<%=”hello”%>,可以

<%=System.out.println(“hello”);%>,不可以!

<%= Math.min(10,20)%>,可以

<%...%>:代码片段!打到这里内容等同与打到方法中。注:每次访问不会在原值上加加,因为是局部变量。并且多个代码片段之间是互通的!

<%int i = 10;i = 100;%>,可以。

<%System.out.print(“hello”);%>,可以

<%private int a = 10;%>,不可以

<%public volid fun1() {}%>,不可以

<%!...%>:定义(声明)!打到这里的内容等同与打到类体中。class A {…} 注:每次访问时会在原值上加加,因为是全局变量。

<%! int a;%>:可以;

<%! public void fun2() {..}%>:可以

<%!private class A {}%>:可以

    注:在声明中,不能使用9大内置对象,因为查看JSP真身发现9大内置对象都在_jspservice下方,而声明实在_jspservice上方的,所以不能使用九大内置对象,只有java代码段和表达式可以使用这九大内置对象。

JSP内置对象:不用创建即可直接使用!

l application:SevletContext

l request:HttpServletRequest

l response:HttpServletResponse

l session:HttpSession

l out:JspWriter,等同与response.getWriter()

l config:ServletConfig

l exception:异常对象,它是Throwable

l page:Object,它表示this。例如:Object page = this;

l pageContext:页面上下文!PageContext

    

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><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/> 使用表达式输出常量是很傻的一件事,因为可以直接使用html即可,下面是输出上面的常量:<br/> 100<br/> 你好  </body></html>输出三种形式:  1.直接打字  2.out.print("你好")  3.response.getwriter(),print("你好")


3.JSP原理

jsp就是servlet!

tomcat会把jsp转换成html,其实是把jsp变成.java

然后把.java编译成.class,其实这个类就是一个servlet!

而这个servlet中存在大量out.write(“<html>”),这就是最终的输出结果,即html

4.jsp注释 

我们现在已经知道JSP是需要先编译成.java,再编译成.class的。其中<%-- ... --%>中的内容在JSP编译成.java时会被忽略的,即JSP注释。

也可以在JSP页面中使用html注释:<!-- … -->,但这个注释在JSP编译成的.java中是存在的,它不会被忽略,而且会被发送到客户端浏览器。但是在浏览器显示服务器发送过来的html时,因为<!-- … -->是html的注释,所以浏览器是不会显示它的。

附:jsp真身代码

  

package org.apache.jsp;import javax.servlet.*;import javax.servlet.http.*;import javax.servlet.jsp.*;import java.util.*;public final class regist_jsp extends org.apache.jasper.runtime.HttpJspBase implements org.apache.jasper.runtime.JspSourceDependent,  org.apache.jasper.runtime.JspSourceImports {  private static final javax.servlet.jsp.JspFactory _jspxFactory =  javax.servlet.jsp.JspFactory.getDefaultFactory();  private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants;  static { _jspx_dependants = new java.util.HashMap<java.lang.String,java.lang.Long>(2); _jspx_dependants.put("jar:file:/F:/tomcat/webapps/day11_30/WEB-INF/lib/jstl-1.2.jar!/META-INF/c.tld", Long.valueOf(1153356282000L)); _jspx_dependants.put("/WEB-INF/lib/jstl-1.2.jar", Long.valueOf(1480475931708L));  }  private static final java.util.Set<java.lang.String> _jspx_imports_packages;  private static final java.util.Set<java.lang.String> _jspx_imports_classes;  static { _jspx_imports_packages = new java.util.HashSet<>(); _jspx_imports_packages.add("javax.servlet"); _jspx_imports_packages.add("java.util"); _jspx_imports_packages.add("javax.servlet.jsp"); _jspx_imports_packages.add("javax.servlet.http"); _jspx_imports_classes = null;  }  private org.apache.jasper.runtime.TagHandlerPool _005fjspx_005ftagPool_005fc_005furl_0026_005fvalue_005fnobody;  private volatile javax.el.ExpressionFactory _el_expressionfactory;  private volatile org.apache.tomcat.InstanceManager _jsp_instancemanager;  public java.util.Map<java.lang.String,java.lang.Long> getDependants() { return _jspx_dependants;  }  public java.util.Set<java.lang.String> getPackageImports() { return _jspx_imports_packages;  }  public java.util.Set<java.lang.String> getClassImports() { return _jspx_imports_classes;  }  public javax.el.ExpressionFactory _jsp_getExpressionFactory() { if (_el_expressionfactory == null) {synchronized (this) {if (_el_expressionfactory == null) {  _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();}} } return _el_expressionfactory;  }  public org.apache.tomcat.InstanceManager _jsp_getInstanceManager() { if (_jsp_instancemanager == null) {synchronized (this) {if (_jsp_instancemanager == null) {  _jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig());}} } return _jsp_instancemanager;  }  public void _jspInit() { _005fjspx_005ftagPool_005fc_005furl_0026_005fvalue_005fnobody = org.apache.jasper.runtime.TagHandlerPool.getTagHandlerPool(getServletConfig());  }  public void _jspDestroy() { _005fjspx_005ftagPool_005fc_005furl_0026_005fvalue_005fnobody.release();  }  public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)throws java.io.IOException, javax.servlet.ServletException {final java.lang.String _jspx_method = request.getMethod();if (!"GET".equals(_jspx_method) && !"POST".equals(_jspx_method) && !"HEAD".equals(_jspx_method) && !javax.servlet.DispatcherType.ERROR.equals(request.getDispatcherType())) {response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "JSPs only permit GET POST or HEAD");return;} 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; javax.servlet.jsp.JspWriter _jspx_out = null; javax.servlet.jsp.PageContext _jspx_page_context = null; try {response.setContentType("text/html;charset=utf-8");pageContext = _jspxFactory.getPageContext(this, request, response,null, true, 8192, true);_jspx_page_context = pageContext;application = pageContext.getServletContext();config = pageContext.getServletConfig();session = pageContext.getSession();out = pageContext.getOut();_jspx_out = out;out.write("/r/n");out.write("/r/n");String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";out.write("/r/n");out.write("/r/n");out.write("<!DOCTYPE HTML PUBLIC /"-//W3C//DTD HTML 4.01 Transitional//EN/">/r/n");out.write("<html>/r/n");out.write("  <head>/r/n");out.write(" <base href=/"");out.print(basePath);out.write("/">/r/n");out.write(" /r/n");out.write(" <title>My JSP 'regist.jsp' starting page</title>/r/n");out.write(" /r/n");out.write("/t<meta http-equiv=/"pragma/" content=/"no-cache/">/r/n");out.write("/t<meta http-equiv=/"cache-control/" content=/"no-cache/">/r/n");out.write("/t<meta http-equiv=/"expires/" content=/"0/"> /r/n");out.write("/t<meta http-equiv=/"keywords/" content=/"keyword1,keyword2,keyword3/">/r/n");out.write("/t<meta http-equiv=/"description/" content=/"This is my page/">/r/n");out.write("/t<!--/r/n");out.write("/t<link rel=/"stylesheet/" type=/"text/css/" href=/"styles.css/">/r/n");out.write("/t-->/r/n");out.write("<script type=/"text/javascript/">/r/n");out.write("/tfunction _change(){/r/n");out.write("/t/tvar imgEle = document.getElementById(/"imgEle/");/r/n");out.write("/t/timgEle.src = /"");if (_jspx_meth_c_005furl_005f0(_jspx_page_context))return;out.write("?/"+ new Date().getTime(); /r/n");out.write("/t}/r/n");out.write("</script>/r/n");out.write("  </head>/r/n");out.write("  /r/n");out.write("  <body>/r/n");out.write("<h1>注册页面</h1>/r/n");out.write("<!--/r/n");out.write("1.显示表单页面/r/n");out.write("2.显示服务器端的输入校验错误信息/r/n");out.write("3.显示后台校验错误信息/r/n");out.write("4.校验失败时回显数据/r/n");out.write("-->/r/n");out.write("<p style=/"color:red;font-size:10pt;font-weight:900/">");out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${msg}", java.lang.String.class, (javax.servlet.jsp.PageContext)_jspx_page_context, null));out.write("</p>/r/n");out.write("<form action=/"");if (_jspx_meth_c_005furl_005f1(_jspx_page_context))return;out.write("/" method=/"post/">/r/n");out.write("用户名:<input type=/"text/" name=/"username/" value=/"");out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${form.username}", java.lang.String.class, (javax.servlet.jsp.PageContext)_jspx_page_context, null));out.write("/"/>/r/n");out.write("/t/t<span style=/"color:red;font-size:10pt;font-weight:900/">");out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${errors.username}", java.lang.String.class, (javax.servlet.jsp.PageContext)_jspx_page_context, null));out.write("</span>/r/n");out.write("/t/t<br/>/t/t/r/n");out.write("性 别:<input type=/"text/" name=/"gender/" value=/"");out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${form.gender}", java.lang.String.class, (javax.servlet.jsp.PageContext)_jspx_page_context, null));out.write("/"/>/r/n");out.write("/t/t<span style=/"color:red;font-size:10pt;font-weight:900/">");out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${errors.gender}", java.lang.String.class, (javax.servlet.jsp.PageContext)_jspx_page_context, null));out.write("</span>/r/n");out.write("/t/t<br/>/r/n");out.write("年 龄:<input type=/"text/" name=/"age/" value=/"");out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${form.age}", java.lang.String.class, (javax.servlet.jsp.PageContext)_jspx_page_context, null));out.write("/"/>/r/n");out.write("/t/t<span style=/"color:red;font-size:10pt;font-weight:900/">");out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${errors.age}", java.lang.String.class, (javax.servlet.jsp.PageContext)_jspx_page_context, null));out.write("</span>/r/n");out.write("/t/t<br/>/r/n");out.write("密 码:<input type=/"password/" name=/"password/"/>/r/n");out.write("/t/t<span style=/"color:red;font-size:10pt;font-weight:900/">");out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${errors.password}", java.lang.String.class, (javax.servlet.jsp.PageContext)_jspx_page_context, null));out.write("</span>/r/n");out.write("/t/t<br/>/r/n");out.write("确认密码:<input type=/"password/" name=/"repassword/"/>/r/n");out.write("/t/t<span style=/"color:red;font-size:10pt;font-weight:900/">");out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${errors.repassword}", java.lang.String.class, (javax.servlet.jsp.PageContext)_jspx_page_context, null));out.write("</span>/r/n");out.write("/t/t<br/>/r/n");out.write("验证码:<input type=/"text/" name=/"verifyCode/" size=/"3/" value=/"");out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${form.verifyCode}", java.lang.String.class, (javax.servlet.jsp.PageContext)_jspx_page_context, null));out.write("/"/>/r/n");out.write("/t/t<img  src=/"");if (_jspx_meth_c_005furl_005f2(_jspx_page_context))return;out.write("/" id=/"imgEle/"/>/r/n");out.write("/t/t<a href=/"javascript:_change()/">换一张</a>/r/n");out.write("/t/t<span style=/"color:red;font-size:10pt;font-weight:900/">");out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${errors.verifyCode}", java.lang.String.class, (javax.servlet.jsp.PageContext)_jspx_page_context, null));out.write("</span>/r/n");out.write("/t/t<br/>/r/n");out.write("/t<input type=/"submit/" value=/"注册/"/>/r/n");out.write("</form>/r/n");out.write("  </body>/r/n");out.write("</html>/r/n"); } catch (java.lang.Throwable t) {if (!(t instanceof javax.servlet.jsp.SkipPageException)){out = _jspx_out;if (out != null && out.getBufferSize() != 0)  try {if (response.isCommitted()) {  out.flush();} else {  out.clearBuffer();}  } catch (java.io.IOException e) {}if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);else throw new ServletException(t);} } finally {_jspxFactory.releasePageContext(_jspx_page_context); }  }  private boolean _jspx_meth_c_005furl_005f0(javax.servlet.jsp.PageContext _jspx_page_context)  throws java.lang.Throwable { javax.servlet.jsp.PageContext pageContext = _jspx_page_context; javax.servlet.jsp.JspWriter out = _jspx_page_context.getOut(); //  c:url org.apache.taglibs.standard.tag.rt.core.UrlTag _jspx_th_c_005furl_005f0 = (org.apache.taglibs.standard.tag.rt.core.UrlTag) _005fjspx_005ftagPool_005fc_005furl_0026_005fvalue_005fnobody.get(org.apache.taglibs.standard.tag.rt.core.UrlTag.class); _jspx_th_c_005furl_005f0.setPageContext(_jspx_page_context); _jspx_th_c_005furl_005f0.setParent(null); // /regist.jsp(26,16) name = value type = null reqTime = true required = false fragment = false deferredValue = false expectedTypeName = null deferredMethod = false methodSignature = null _jspx_th_c_005furl_005f0.setValue("/VerifyCodeServlet"); int _jspx_eval_c_005furl_005f0 = _jspx_th_c_005furl_005f0.doStartTag(); if (_jspx_th_c_005furl_005f0.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {_005fjspx_005ftagPool_005fc_005furl_0026_005fvalue_005fnobody.reuse(_jspx_th_c_005furl_005f0);return true; } _005fjspx_005ftagPool_005fc_005furl_0026_005fvalue_005fnobody.reuse(_jspx_th_c_005furl_005f0); return false;  }  private boolean _jspx_meth_c_005furl_005f1(javax.servlet.jsp.PageContext _jspx_page_context)  throws java.lang.Throwable { javax.servlet.jsp.PageContext pageContext = _jspx_page_context; javax.servlet.jsp.JspWriter out = _jspx_page_context.getOut(); //  c:url org.apache.taglibs.standard.tag.rt.core.UrlTag _jspx_th_c_005furl_005f1 = (org.apache.taglibs.standard.tag.rt.core.UrlTag) _005fjspx_005ftagPool_005fc_005furl_0026_005fvalue_005fnobody.get(org.apache.taglibs.standard.tag.rt.core.UrlTag.class); _jspx_th_c_005furl_005f1.setPageContext(_jspx_page_context); _jspx_th_c_005furl_005f1.setParent(null); // /regist.jsp(40,14) name = value type = null reqTime = true required = false fragment = false deferredValue = false expectedTypeName = null deferredMethod = false methodSignature = null _jspx_th_c_005furl_005f1.setValue("RegistServlet"); int _jspx_eval_c_005furl_005f1 = _jspx_th_c_005furl_005f1.doStartTag(); if (_jspx_th_c_005furl_005f1.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {_005fjspx_005ftagPool_005fc_005furl_0026_005fvalue_005fnobody.reuse(_jspx_th_c_005furl_005f1);return true; } _005fjspx_005ftagPool_005fc_005furl_0026_005fvalue_005fnobody.reuse(_jspx_th_c_005furl_005f1); return false;  }  private boolean _jspx_meth_c_005furl_005f2(javax.servlet.jsp.PageContext _jspx_page_context)  throws java.lang.Throwable { javax.servlet.jsp.PageContext pageContext = _jspx_page_context; javax.servlet.jsp.JspWriter out = _jspx_page_context.getOut(); //  c:url org.apache.taglibs.standard.tag.rt.core.UrlTag _jspx_th_c_005furl_005f2 = (org.apache.taglibs.standard.tag.rt.core.UrlTag) _005fjspx_005ftagPool_005fc_005furl_0026_005fvalue_005fnobody.get(org.apache.taglibs.standard.tag.rt.core.UrlTag.class); _jspx_th_c_005furl_005f2.setPageContext(_jspx_page_context); _jspx_th_c_005furl_005f2.setParent(null); // /regist.jsp(57,13) name = value type = null reqTime = true required = false fragment = false deferredValue = false expectedTypeName = null deferredMethod = false methodSignature = null _jspx_th_c_005furl_005f2.setValue("/VerifyCodeServlet"); int _jspx_eval_c_005furl_005f2 = _jspx_th_c_005furl_005f2.doStartTag(); if (_jspx_th_c_005furl_005f2.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {_005fjspx_005ftagPool_005fc_005furl_0026_005fvalue_005fnobody.reuse(_jspx_th_c_005furl_005f2);return true; } _005fjspx_005ftagPool_005fc_005furl_0026_005fvalue_005fnobody.reuse(_jspx_th_c_005furl_005f2); return false;  }}

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台