开发者社区> 桃子红了呐> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

JavaWeb与JSP初识

简介:
+关注继续查看

JavaWeb执行过程

422101-20170113223321338-2083262704.png

目录结构

  1. Web程序部署在Tomcat的/webapps下面。
  2. 一个webapps文件夹可以部署多个不同的Web应用,webapps/web1,webapps/web2。

  3. 如果不适用上下文路径,Web程序需放到webapps/ROOT下面。ROOT文件下的程序使用http://localhost:8080访问。

JSP的特点

HTMl代码与Java程序共同存在。

<%--
  Created by IntelliJ IDEA.
  User: e550
  Date: 2017/1/9
  Time: 23:24
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" import="java.util.*" language="java" %>
<%
    Locale locale = request.getLocale();
    Calendar calendar = Calendar.getInstance(locale); // 获取用户所在地的时间
    int hour = calendar.get(Calendar.HOUR_OF_DAY); // 获取小时
    String greeting = "";
    if (hour <= 6) {
        greeting = "凌晨好,您该睡觉了。良好的睡眠是美好一天的开始。";
    } else if (hour <=9 ) {
        greeting = "早上好,早餐要有营养。";
    } else if (hour <= 12) {
        greeting = "上午好,工作注意保护眼睛。";
    } else if (hour <=18) {
        greeting = "下午好,小心工作打瞌睡。";
    } else if (hour <= 24) {
        greeting = "晚上好,注意休息,睡觉不要太晚哦~";
    }
%>
<html>
  <head>
    <title>来自智能管家的问候</title>
  </head>
  <body>
  <%= greeting%>
  </body>
</html>

422101-20170114004422322-1584071941.png

JSP脚本

JSP脚本必须使用"<%"与"%>"括起来,否则会被视为模板数据。

<%--
  Created by IntelliJ IDEA.
  User: e550
  Date: 2017/1/9
  Time: 23:24
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" import="java.util.*" language="java" %>
<%
    int num = 10;
    int result = 1;
    for (int i=1;i<=num;i++) {
        result *= i;
    }
    out.println("数字" + num + "的阶乘为:"+result);
%>
<html>
  <head>
    <title>jsp测试</title>
  </head>
  <body>
  </body>
</html>

结果:数字10的阶乘为:3628800

JSP输出

<%= 
    // something
%>
<%--
  Created by IntelliJ IDEA.
  User: e550
  Date: 2017/1/9
  Time: 23:24
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" import="java.util.*" language="java" %>
<%
    int num = 10;
    int result = 1;
    for (int i=1;i<=num;i++) {
        result *= i;
    }

%>
<html>
  <head>
    <title>jsp测试</title>
  </head>
  <body>
   数字 <%= num%>的阶乘为:<%= result%>
  </body>
</html>

JSP注释

<%--
    这是JSP注释,可以添加多行注释
--%>

JSP方法使用

<%!
    // 方法
%>

out.println()输出到客户端。
在out.println()中,out是response的实例,是以response为对象进行流输出的,即将内容输出到客户端。

System.out.println()打印在控制台当中。
System.out.println()用的是标准输出流,这个是输出在控制台上的,而JSP不是控制台程序。不管是在JSP还是在JAVA程序中,System.out.println()都是打印在控制台上。 如果想打印在页面,简单点的方法是:
out.print( "要打印的内容" );

<%--
  Created by IntelliJ IDEA.
  User: e550
  Date: 2017/1/9
  Time: 23:24
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" import="java.util.*" language="java" %>
<%!
   String t = "";
   public void test() {
       t = "JSP方法测试";
   }
%>
<html>
  <head>
    <title>jsp测试</title>
  </head>
  <body>
   <%
       test();
   %>
   <%= t%>
  </body>
</html>

JSP 中if语句的使用

<%--
  Created by IntelliJ IDEA.
  User: e550
  Date: 2017/1/9
  Time: 23:24
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" import="java.util.*" language="java" %>

<html>
  <head>
    <title>jsp测试</title>
  </head>
  <body>
   <%
       String param = request.getParameter("param");
       if ("1".equals(param)) {
   %>
   Java
   <%
       }
       else if ("2".equals(param)) {
   %>
   PHP
   <%
       }
   %>

  </body>
</html>

422101-20170114003454791-1236495342.png

for循环

<%--
  Created by IntelliJ IDEA.
  User: e550
  Date: 2017/1/9
  Time: 23:24
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" import="java.util.*" language="java" %>

<html>
  <head>
    <title>jsp测试</title>
  </head>
  <body>
   <%
       for(int i=1;i<=10;i++) {
   %>
   <div>
       <%out.print("hello world!"+i);%>
   </div>
   <%
       }
   %>

  </body>
</html>

422101-20170114004042119-153497894.png

方法论:感觉很像php。




本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/6284505.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Java多线程那些事,对Java并发编程2w余字的总结,超详细(从入门到完全掌握)
Java多线程那些事,对Java并发编程2w余字的总结,超详细(从入门到完全掌握)
83 0
java多线程中的死锁、活锁、饥饿、无锁都是什么鬼?
死锁、活锁、饥饿是关于多线程是否活跃出现的运行阻塞障碍问题,如果线程出现了这三种情况,即线程不再活跃,不能再正常地执行下去了。
70 0
五分钟带你玩转多线程(一)java多线程基础知识简介
线程概念 进程:是一个执行中的程序,如打开网易云音乐,网易云音乐就是一个进程 线程:是进程的组成,一个进程包含多个线程,是jvm最小调度单元。如网易云音乐听歌是一个线程,评价是一个线程。
52 0
Java的并发编程中的多线程问题到底是怎么回事儿?
原创: Hollis 在我之前的一篇《再有人问你Java内存模型是什么,就把这篇文章发给他。》文章中,介绍了Java内存模型,通过这篇文章,大家应该都知道了Java内存模型的概念以及作用,这篇文章中谈到,在Java并发编程中,通常会遇到三个问题,即原子性问题、一致性问题和有序性问题。
1060 0
4267
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载