jsp, servlet之helloworld

首先将官网上下载的Tomcat8.0.tar.gz解压到/Library目录。

启动Tomcat

➜  /Library/Tomcat-8.5.15  bin/startup.sh                                                                                          [2:51:51]
Using CATALINA_BASE:   /Library/Tomcat-8.5.15
Using CATALINA_HOME:   /Library/Tomcat-8.5.15
Using CATALINA_TMPDIR: /Library/Tomcat-8.5.15/temp
Using JRE_HOME:        /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
Using CLASSPATH:       /Library/Tomcat-8.5.15/bin/bootstrap.jar:/Library/Tomcat-8.5.15/bin/tomcat-juli.jar
Tomcat started.

然后查看Tomcat是否已经启动。

➜  /private/etc/apache2/users  tcp|grep java                                                                                       [3:11:53]
java      13154 caiqiqi   46u  IPv6 0xba278df1111d65bd      0t0  TCP *:8080 (LISTEN)
java      13154 caiqiqi   51u  IPv6 0xba278df1111d607d      0t0  TCP *:8009 (LISTEN)
java      13154 caiqiqi   74u  IPv6 0xba278df101da9afd      0t0  TCP 127.0.0.1:8005 (LISTEN)
...
➜  /private/etc/apache2/users  ps aux|grep tomcat                                                                                  [3:11:35]
caiqiqi          13515   0.6  0.0  2432804   1988 s007  S+    3:11上午   0:00.00 grep tomcat
caiqiqi          13154   0.0  5.4  4935560 456616 s006  S     2:51上午   0:31.84 /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java -Djava.util.logging.config.file=/Library/Tomcat-8.5.15/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -classpath /Library/Tomcat-8.5.15/bin/bootstrap.jar:/Library/Tomcat-8.5.15/bin/tomcat-juli.jar -Dcatalina.base=/Library/Tomcat-8.5.15 -Dcatalina.home=/Library/Tomcat-8.5.15 -Djava.io.tmpdir=/Library/Tomcat-8.5.15/temp org.apache.catalina.startup.Bootstrap start

原来Tomcat启动的命令这么繁琐。
然后修改conf/server.xml修改appBase变量到相对/Library/Tomcat-8.5.15目录的相对目录,比如webapps/struts_vuln,另外如果想让该目录下的.war压缩文件被解压之后再被访问的话,就将unpackWARs="true",否则改为false。
参考:Tomcat 配置文件详解
Tomcat的配置文件Server.xml解析

➜  /Library/Tomcat-8.5.15  echo "GET /test/helloworld.jsp\r\n\r\n"|nc 127.0.0.1 8080                                               [2:59:50]
<html>
<body>
<h2>Hello World of Java!</h2>
The time on the server is Fri May 12 03:00:21 CST 2017
</body>
</html>
➜  /Library/Tomcat-8.5.15  cat /Library/Tomcat-8.5.15/webapps/struts_vuln/test/helloworld.jsp                                      [3:00:21]
<html>
<body>
<h2>Hello World of Java!</h2>
The time on the server is <%= new java.util.Date() %>
</body>
</html>

这里写图片描述

所以用nc来发HTTP请求,是没有User-Agent字段的。。。

➜  ~  echo "GET /jsp_demo/web/index.jsp\r\n\r\n" |nc 127.0.0.1 8080                                                               [11:09:57]


<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  The time of the server is Fri May 12 11:10:04 CST 2017
  <br/>


  <h3>This is printed out by out.println()</h3>
<h3>hellovenus</h3>

  <h3>-----Test request-----</h3>
  User-Agent: null <br>
  Cookie: null <br>
  Language: zh_CN <br>
  Accept-Language: null <br>
  </body>
</html>
➜  /Library/Tomcat-8.5.15/webapps  cat jsp_demo/web/index.jsp                                                                     [11:13:30]
<%--
  Created by IntelliJ IDEA.
  User: caiqiqi
  Date: 2017/5/12
  Time: 上午3:23
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  The time of the server is <%= new java.util.Date()%>
  <br/>
  <%!
    String makeLower(String data){
        return data.toLowerCase();
    }
  %>

  <%
    out.println("<h3>This is printed out by out.println()</h3>");
    out.println("<h3>" + makeLower("HELLOVENUS") + "</h3>");
  %>
  <h3>-----Test request-----</h3>
  User-Agent: <%= request.getHeader("User-Agent") %> <br>
  Cookie: <%= request.getHeader("Cookie") %> <br>
  Language: <%= request.getLocale() %> <br>
  Accept-Language: <%= request.getHeader("Accept-Language") %> <br>
  </body>
</html>

目录结构

➜  /Library/Tomcat-8.5.15/webapps/jsp_demo  tree                                                                                  [19:12:37]
.
├── jsp_demo.iml
├── out
│   └── artifacts
│       └── jsp_demo_war_exploded
│           ├── WEB-INF
│           │   ├── classes
│           │   │   └── HelloWorldServlet.class
│           │   └── web.xml
│           └── index.jsp
├── src
│   └── HelloWorldServlet.java
└── web
    ├── WEB-INF
    │   ├── classes
    │   │   └── HelloWorldServlet.class
    │   ├── lib
    │   └── web.xml
    └── index.jsp

10 directories, 8 files

访问index.jsp:

http://localhost:8080/jsp_demo/index.jsp
# 或者http://localhost:8080/jsp_demo/

访问HelloWorldServlet:

http://localhost:8080/jsp_demo/HelloWorldServlet

Servlet之HelloWorldServlet

参考:
Intellij idea创建javaWeb以及Servlet简单实现

➜  ~  curl http://localhost:8080/jsp_demo/HelloWorldServlet                                                                       [15:55:20]
<h1>Hello world, this message is from servlet!</h1>

这里写图片描述

Servlet和JSP比较

Servlet出现于1997年,而JSP出现在1999年。
比较流行的设计模式是:Servlet处理业务逻辑,而JSP用来呈现View
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值