Java遇见HTML-JSP(一)

2020-04-21  本文已影响0人  零下的雨

Java遇见HTML的6篇文章技术较老只是在熟悉java基础知识和了解mvc模型思想

JSP:
JSP全名是Java server pages,其根本是一个简化的servlet设计,他实现了在java当中使用html标签,jsp是一种动态网页技术标准也是JAVAEE的标准。jsp和servlet一样,是在服务器端执行的。
JSP页面组成部分:指令、表达式、小脚本、声明、注释、静态内容

JSP指令:
page指令:通常位于jsp页面的顶端,同一个页面可以有多个page指令。
include指令:将一个外部文件嵌入到当前jsp文件中,同时解析这个页面中的jsp语句。
taglib指令:使用标签库定义新的自定义标签,在jsp页面中启用定制行为。

image.png
image.png

jsp中可以写java语言:


image.png
jsp声明:

在jsp中声明变量和方法。


image.png
  <%!
    String i="111111";
    int add(int a,int b)
    {
        return a+b;
    }

  %>
  <%
    //单行注释在客户端不可见
    /*
    多行注释在客户端可见
     */
    System.out.println("欢迎大家学习javaEE开发");
    System.out.println(i);//调用上面的变量
  %>

jsp表达式

image.png
  <%!
    String i="111111";
    int add(int a,int b)
    {
        return a+b;
    }

  %>
  <br>
  <%
    //单行注释在客户端不可见
    /*
    多行注释在客户端可见
     */
    System.out.println("欢迎大家学习javaEE开发");
    System.out.println(i);//调用上面的变量
  %>
  <!--调用上面的变量-->
  <%=i%>
  <br>
  <!--调用上面的方法-->
  <%=add(10,20)%>
image.png

jsp页面生命周期

image.png
image.png

JSP引擎把jsp文件转换成一个servlet类的字节码文件,调用jspInit()方法生成java字节码文件,解析后执行jspService()方法,该方法中就是jsp文件中要展示到前端的业务逻辑代码。

脚本:

  <br>
  <%
    SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-mm-dd");
    String s=simpleDateFormat.format(new Date());
  %>

  今天是:<%=s%>
  <br>
  <!--声明一个方法,返回打印的结果,使用表达式调用-->
  <!--声明第二个方法,方法中打印结果,在脚本中调用-->
  <%!
      String getMutiResult() throws Exception
      {
          String s="";
          for (int i=1;i<=9;i++)
          {
              for (int j=1;j<=i;j++)
              {
                  s+=i+"*"+j+"="+(i*j)+"&nbsp;&nbsp;&nbsp;&nbsp;";
              }
              s=s+"<br>";
          }
          return s;

      }

      void getMutiResultTwo(JspWriter out) throws Exception
      {
          for (int i=1;i<=9;i++)
          {
              for (int j=1;j<=i;j++)
              {
                  out.print(i+"*"+j+"="+(i*j)+"&nbsp;&nbsp;&nbsp;&nbsp;");
              }
              out.println("<br>");
          }

      }
  %>
  <h1>九九乘法口诀</h1>
  <%=getMutiResult()%>
  <br>
  <%
      //使用脚本的方式调用方法,并传参数
      getMutiResultTwo(out);
  %>

jsp的内置对象,不需要new实例化就可以直接使用

image.png

out\request\response\session\application\page\pageContext\exception\config

out对象:

image.png

get和post

image.png
image.png

启动tomcat服务,在浏览器中看到login.jsp中写的内容:


image.png
输入用户名、密码登录后跳转到dologin.jsp中
image.png

可以看到浏览器地址中把用户名和密码都带上了,因为用的是get方法就会把用户名和密码作为参数提交给服务器。用post方法就会避免把用户信息暴露出来的问题。
改成post重新发布:


image.png
看到浏览器中不带用户信息了:
image.png

request对象

image.png
image.png

主要用到getParameter和getParameterValues


image.png
image.png

浏览器中:


image.png
image.png

其他方法的使用:


image.png

response

image.png
image.png

请求重定向和请求转发

image.png

reg.jsp的action指向response.jsp


image.png

response.jsp中请求重定向到request.jsp中


image.png
在浏览器中先进到reg.jsp中,输入用户名和密码提交后服务端会先进入response.jsp
中再跳转到request.jsp中,但是用户名和爱好都没有获取到
image.png

因为请求重定向,相当于两次请求,前一次请求的信息不会保存,所以为空。

下面看请求转发:


image.png

修改jsp后更新程序,浏览器重新进入reg.jsp页面输入用户名和爱好,进入response.jsp页面中看到获取到用户名和爱好,浏览器中url地址也没有变化。


image.png
image.png
上一篇下一篇

猜你喜欢

热点阅读