java web开发(第一个jsp工程)

Posted 嵌入式-老费

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java web开发(第一个jsp工程)相关的知识,希望对你有一定的参考价值。

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        前面两期,我们谈到了怎么进行servlet的编写。一种方法是将传统的java工程改造成servlet工程;另外一种方法就是直接利用maven创建一个webapp工程。事实上呢,如果大家观察仔细的话,可以发现系统当时其实已经帮助我们创建了一个jsp,是index.jsp。

        servlet和jsp之间的关系,有点类似于controller和view的关系。servlet是java里面嵌入html,而jsp是html里面嵌入java。今天就可以通过这个机会看看,单纯jsp工程是怎么创建的。

1、创建maven下的webapp工程,类型选择maven-archetype-webapp

2、依次Next确定之后,直到工程生成,就可以看到一个index.jsp文件,内容如下,

<html>
<body>
<h2>Hello World!</h2>
</body>
</html>

3、配置tomcat服务器

3.1 配置端口

 3.2 配置  deployment

4、保存配置,启动web服务器

         没有意外的话,输入http://localhost:8090/Hello_war_exploded/之后,就会看到一个Hello World的网页出现了。这一切看上去都平淡无奇。没关系,我们可以继续通过几个实例看一下jsp是怎么嵌入java代码的。

5、jsp范例

5.1 将jsp的直接输出修改为java代码打印输出

<html>
<head>
    <title>第一个 JSP 程序</title>
</head>
<body>
<%
    out.println("Hello World");
%>
</body>
</html>

        从这段代码看,显然两个%之间的内容是web服务器帮忙解析的。其实这段代码也是经过了jsp-》java servlet-》html转变的过程,只不过是后台帮忙做了,前台是看不出来的。可以逆向看一下html内容,和之前的直接输出几乎没有区别。

<html>
<head>
    <title>The first jsp program</title>
</head>
<body>
Hello World

</body>
</html>

5.2 获取当前日期

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>日期</title>
</head>
<body>
<p>
    今天的日期是: <%= (new java.util.Date()).toLocaleString()%>
</p>
</body>
</html>

        这段代码可以比较明显地看出来,日期的获取方法是明显的java编程方法。不管是java.util.Date,还是toLocalString,形式上几乎一眼就可以看出来是java编程。

5.3 jsp生命周期

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
<head>
<title>life.jsp</title>
</head>
<body>

<%! 
  private int initVar=0;
  private int serviceVar=0;
  private int destroyVar=0;
%>
  
<%!
  public void jspInit()
    initVar++;
    System.out.println("jspInit(): JSP被初始化了"+initVar+"次");
  
  public void jspDestroy()
    destroyVar++;
    System.out.println("jspDestroy(): JSP被销毁了"+destroyVar+"次");
  
%>

<%
  serviceVar++;
  System.out.println("_jspService(): JSP共响应了"+serviceVar+"次请求");

  String content1="初始化次数 : "+initVar;
  String content2="响应客户请求次数 : "+serviceVar;
  String content3="销毁次数 : "+destroyVar;
%>
<h1>JSP 测试</h1>
<p><%=content1 %></p>
<p><%=content2 %></p>
<p><%=content3 %></p>

</body>
</html>

        这段代码比较有意思,大家可以通过不断刷新网页,验证content1、content2、content3这个三个数值是什么时候发生改变的。比如说,为什么content1没有变?为什么content2一直在变?为什么content3好像一直是0,究竟应该什么时候content3才会发生改变等等。

6、总结

        jsp的出发点是好的,比如说设计者是想通过后端java解析,可以实现view界面的自由开发。无奈后来出现了更多的后端模板引擎,甚至出现了vue这种前端搞定一切的架构,所以jsp本身其实就没有那么重要了,它所留下来的更多的是其设计思想。

以上是关于java web开发(第一个jsp工程)的主要内容,如果未能解决你的问题,请参考以下文章

java web开发(IDEA安装 + 第一个java工程)

java web工程的错误页面的简单配置

IDEA+Java+JSP+Mysql+Tomcat实现Web教师信息管理系统

Java开发工程师(Web方向) - 01.Java Web开发入门 - 第3章.Servlet应用

Java开发工程师(Web方向) - 01.Java Web开发入门 - 第4章.Maven

Java开发工程师(Web方向) - 01.Java Web开发入门 - 第6章.蜂巢