学习过程初次设想

其实一直以来都有设想过自己写一个简单的小网站,但是一直没有付诸实施,现在尝试一边学习一边实现。
目前具有简单的java基础(并不了解基础的框架,也是打算一边学习一边实现)、html基础、mysql基础。

阶段目标

简单的实现“找笑脸游戏”。
目前系统环境如下:
1.java13
2.tomcat7.0
3.mysql(目前还没有安装)

主要学习参考资料

1.轻量级JavaEE企业应用实战第三版 作者:李刚

过程

1.JSP申明语法

<%! 申明部分%>

例子:实现界面如下,主要是实现访问者访问页面次数的自动叠加。

temp.jsp具体实现代码如下:

<%@ page contentType="text/html;charset=GBK" language="java" errorPage="" %>
<html><head><meta name=keywords content=小游戏,little game,心理游戏,心理提升><meta name=descriptioncontent=这是心理学爱好者自编的网页,目前还在编写阶段,欢迎试用><title>心理提升</title><link rel="icon" href="first.png" ><style content="text/css">div[id]{width:500px;background-color:#ggg;padding:10px;draggable="true";}th{font-weight:blod;background:#ccc;height:40px;width:150px}td{height:40px;width:150px;background:#fff888;}</style></head><!--申明部分--><%!
public int count;%><body><%!public int count;%><div align="center"><div id="xx" draggable="true"><br >hi~欢迎您的到来,这里是找笑脸游戏</br><hr/><!--人脸表格,未完待续--><table align="canter"> <!--java小脚本--><%for(int i=0;i<5;i++){%><tr><%for(int j=0;j<5;j++){%><td>row <%=i%>, cell <%=j%></td><%};%></tr><%};%></table><hr/><div align="right"><table align="left"><tr>网站访问量:<%=count++%></tr></table></div></div></div></body>
</html>

笔记:
①JSP页面的声明部分会转换成对应Servlet的成员变量或成员方法;
②不能使用abstract修饰申明部分的方法,因为抽象方法将导致JSP对Servlet变成抽象类,从而导致无法实例化;

2.JSP表达方法

<%=表达式%>

 <tr>网站访问量:<%=count++%></tr>

在上面的代码中也有使用。

3.JSP脚本

tomcat中jsp所对应的servlet类,jsp小脚本部分将会转换成_jspService方法里的可执行性代码,jsp页面里的所有的静态内容中静态的内容都由_jspService方法里输出语句来输出。这也是JSP脚本可以控制JSP页面中静态内容的原因。

4JSP的3个编译指令
①page

位于页面顶端,一个jsp可以有多个page指令。

  • language
  • extends
  • import
  • session
  • buffer
  • autoFlush
  • info
  • errorPage
  • isErrorPage
  • contentType
    小知识点:MIME的常见形式是一个主类型加一个子类型,用斜线分隔。比如text/html、application/javascript、image/png等。在访问网页时,MIME type帮助浏览器识别一个HTTP请求返回的是什么内容的数据,应该如何打开、如何显示。
    -pageEncoding
    例子实现之一(设置jsp信息info):

在temp.jsp中添加代码。

<%@ page contentType="text/html;charset=GBK" language="java" errorPage="" %>
<%@ page info="这是一个笑脸小游戏,灵感来源于国外视频,视频里说抑郁的人可能更容易关注焦虑、生气等消极表情,此游戏的主要目的是增加人们对笑脸的捕获能力,据说维持7周的适当计划和练习具有缓解抑郁的作用。" %>
<html>
 <div align="center"><hr id="xx1"/><aside><h3>游戏灵感来源</h3><p id="p_1" dir="ltr"><%=getServletInfo()%></p></aside><div></div></div></body>

运行结果如下:

例子实现之二(设置错误页面errorPage):
在temp.jsp中修改代码。

<%@ page contentType="text/html;charset=GBK" language="java" errorPage="error.jsp" %>

编写errorPage页面显示。

<%@ page contentType="text/html;charset=GBK" language="java" isErrorPage="true" %>
<%@ page info="这是一个笑脸小游戏,灵感来源于国外视频,视频里说抑郁的人可能更容易关注焦虑、生气等消极表情,此游戏的主要目的是增加人们对笑脸的捕获能力,据说维持7周的适当计划和练习具有缓解抑郁的作用。" %>
<html><head><meta name=keywords content=小游戏,little game,心理游戏,心理提升><meta name=descriptioncontent=这是心理学爱好者自编的网页,目前还在编写阶段,欢迎试用><title>网页访问出错</title><link rel="icon" href="error.jpg" ></head></head><body><p>游客你好~</p><p>这是一个错误页面,请重新登录,因为网站还处于维护之中,造成的使用不便请见谅~</p></body>
</html>

页面显示如下:

②include

<%@include file=""%>
静态include指令,将包含的页面加入本页面,在body中使用。

③taglib

5.JSP的7个动作

①jsp:forward
②jsp:param
JSP1.1以上规范的使用方法如下:

<jsp:forward page="{relativeURL|<%=exception%>}"><jsp:param.../>
</jsp:forward>

写了一个简单的登录页面login.jsp,不涉及数据库连接。

<%@ page contentType="text/html;charset=GBK" errorPage="" language="java" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta name=keywords content=小游戏,little game,心理游戏,心理提升><meta name=descriptioncontent=这是心理学爱好者自编的网页,目前还在编写阶段,欢迎试用><title>登录页面</title><link rel="icon" href="first.png" ></head>
<body><div align="center"><form id="login" method="post" action="temp.jsp">用户名:<input type="text" name="username"><input type="submit" value="登录"></form></div>
</body>
</html>

在temp.jsp中添加用户名接收语句。

<br >hi,<%=request.getParameter("username")%>~欢迎您的到来,这里是找笑脸游戏</br>

运行效果图如下。

③jsp:include

<jsp:include page="{relativeURL|<%=exception%>}" flush=“true”>
或者
<jsp:include page="{relativeURL|<%=excception%>}" flush=“true”>
<jsp:param name=“parameterName” value=“parameterValue”>
</jsp:include>
仅把页面的body内容的插入本页面中。

  • 静态导入是将被导入页面的传输完全融合两个页面融合成一个servlet。而动态导入则在servlet中使用include的方法来引入被导入页面的内容。
  • 静态导入时导入页面的编译指令会起作用,而动态导入时被导入页面的编译指令则失去作用,只插入被导入页面的body内容
  • 动态包含还可以增加额外的参数。
④jsp:plugin

很少使用

⑤jsp:useBean

<jsp:useBean id=“javaBeanName” class=“javaBeanClassname” scope=“page|request|session|application”/>
<jsp:setProperty name=“BeanName” property=“proteryName” value=“value”/>
<jsp:getProperty name=“BeanName” property=“proteryName” />
在temp.jsp中加入如下代码:

<%@ page contentType="text/html;charset=GBK" language="java" errorPage="error.jsp" %>
<%@ page info="这是一个笑脸小游戏,灵感来源于国外视频,视频里说抑郁的人可能更容易关注焦虑、生气等消极表情,此游戏的主要目的是增加人们对笑脸的捕获能力,据说维持7周的适当计划和练习具有缓解抑郁的作用。" %>
<%@ page import="lee.User" %><!--主要是这个代码-->
 <div align="center"><div id="xx" draggable="true"><!--useBean测试代码--><jsp:useBean id="use" class="lee.User" scope="session"/><%request.setCharacterEncoding("GBK");<!--重要,可以防止出现乱码-->use.setName(request.getParameter("username"));%><br >hi,<%=use.getName()%>~欢迎您的到来,这里是找笑脸游戏</br>

类定义如下:

package lee;
public class User{private String name;private String password;public User(){}public User(String name,String password){this.name=name;this.password=password;}public void setName(String name){this.name=name;}public void setPassword(String password){this.password=password;}public String getName(){return this.name;}public String getPassword(){return this.password;}
}

但是这样tomcat是没有办法运行的,还需要将java源码编译成二进制放到class文件下,可以通过ant进行编译。ant的配置文件build.xml放在\WEB-INF目录下,具体配置文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<project name="antQs" basedir="." default=""><property name="src" value="src"/><property name="classes" value="classes"/><property name="dest" value="dest"/><path id="classpath"><pathelement path="${classes}"/></path><target name="compile"><delete dir="${classes}"/><mkdir dir="${classes}"/><javac destdir="${classes}" debug="true" includeantruntime="yes"deprecation="false" optimize="false" failonerror="true"><src path="${src}"/><classpath refid="classpath"/></javac></target>
</project>

到build.xml下面输入如下命令:
ant compile
得到如下结果表示运行成功:

⑥ jsp:setProperty
⑦jsp:getProperty

今日复习

1.JSP申明语法
<%! 申明部分%>
2.JSP表达方法
<%=表达式%>
3.JSP脚本
<% %>
4.JSP的3个编译指令
①page
②include
③taglib
5.JSP的7个动作
①jsp:forward
②jsp:param
③jsp:include
④jsp:plugin
⑤jsp:useBean
⑥ jsp:setProperty
⑦jsp:getProperty

最后附上用例网址

JSP学习并实现的过程--day01相关推荐

  1. jsp学习(1)jsp请求过程和生命周期

    一.服务器处理jsp请求的过程: 以下步骤表明了 Web 服务器是如何使用JSP来创建网页的: 1.浏览器发送一个 HTTP 请求给服务器. 2.Web 服务器识别出这是一个对 JSP 网页的请求,并 ...

  2. 【学习笔记】JSP学习笔记(上)

    我是灼灼,一只初学Java的大一金渐层. 向往余秀华和狄兰·托马斯的疯狂,时常沉溺于将情感以诗相寄:追逐过王尔德.王小波的文字,后陷于毛姆和斯蒂芬·金不可自拔:热爱文学的浪潮,白日梦到底却总在现实里清 ...

  3. Jsp学习笔记——第二天

    Jsp学习打卡 Jsp学习笔记---第二天 Jsp笔记 第二天 一. 复习 二. 动作元素(包含,转发) 1. 包含动作 [重点] 2. 转发动作 [了解] 三. 隐含对象(内置对象) 1. 概念 2 ...

  4. tomcat启动_tomcat学习|tomcat的启动过程

    开头说两句 小刀博客: https://www.lixiang.red 小刀公众号: 程序员学习大本营 学习背景 在前两篇中,我们讲述了tomcat的源码结构 https://www.lixiang. ...

  5. JSP学习笔记(四十九):抛弃POI,使用iText生成Word文档

    POI操作excel的确很优秀,操作word的功能却不敢令人恭维.我们可以利用iText生成rtf文档,扩展名使用doc即可. 使用iText生成rtf,除了iText的包外,还需要额外的一个支持rt ...

  6. 【深度学习】模型训练过程可视化思路(可视化工具TensorBoard)

    [深度学习]模型训练过程可视化思路(可视化工具TensorBoard) 文章目录 1 TensorBoard的工作原理 2 TensorFlow中生成log文件 3 启动TensorBoard,读取l ...

  7. 【Servlet】JSP学习-概念和运行原理

    为什么需要JSP? 与HTML相比:根据后台的业务,可以动态输出HTML,网页内容是可以改变的. 与原生Servlet相比:不需要自己写输出语句resp.getWriter().write(" ...

  8. java jsp学习指南_JSP教程–最终指南

    java jsp学习指南 编者注: JavaServer Pages(JSP)技术使您可以轻松创建同时包含静态和动态组件的Web内容. JSP技术提供了Java Servlet技术的所有动态功能,但提 ...

  9. Hadoop学习笔记—10.Shuffle过程那点事儿

    Hadoop学习笔记-10.Shuffle过程那点事儿 一.回顾Reduce阶段三大步骤 在第四篇博文<初识MapReduce>中,我们认识了MapReduce的八大步骤,其中在Reduc ...

最新文章

  1. 俄克拉荷马州立大学冯锋组博士生招聘-植物与微生物互作
  2. 独家 | 忘记波士顿动力公司。这个机器人可以自学走路
  3. trycatch抛出异常_Java生鲜电商平台架构中,如何统一异常处理及架构实战
  4. 用python画玫瑰花简单-利用python的turtle库画一朵简单的玫瑰花,并添加文字
  5. 笑谈.Net的开发境界
  6. switch case 中定义变量
  7. 图片自动播放和动态添加
  8. Windows下创建并运行.sh文件
  9. mysql 秀出两个相关联的表中满足条件的内容_深入挖掘MySQL底层数据结构
  10. Spring boot mqtt客户端
  11. Java的身份证号码工具类
  12. java网页木马代码_能够解网页木马代码的高人来看以下。谢谢!```
  13. 神仙道玄奇套装材料大全
  14. JAVA-day18-Map集合遍历、HashMap、TreeMap、Collections、集合嵌套,模拟斗地主发牌
  15. disallow .php,一次解决discuz只收录首页,不收录内页的问题,景安虚拟主机discuz帖子伪静态设置解决办法...
  16. 计算机辅助英语教学 研究背景,精选:信息时代背景下的英语教学原稿
  17. php服务器响应时间如何设置,php设置浏览器响应时间
  18. Atitit 管理的模式扁平化管理 金字塔 直线型管理 垂直管理 水平管理 矩阵式管理 网状式样管理 多头管理 双头管理...
  19. java 奶牛生子,奶牛镇的小时光npc怎么结婚?结婚生子攻略
  20. 6 数据库设计:实体-联系方法

热门文章

  1. Javascript中最常用的55个经典技巧
  2. 7-18 二分法求多项式单根 (C语言)
  3. 【物联网】老程序教你一招,10行代码让超声波模块秒变声控开关
  4. 摘要、引言和结论的六项区别
  5. cad抛物线曲线lisp_CAD画缓和曲线lisp程序精编版
  6. uni-app图片列表预览大图
  7. [Office] WPS Excel通过添加宏实现多张表格合并
  8. Unity 3D光源-Spot Light聚光灯用法详解、模拟手电筒、台灯等线性教程
  9. EasyRecovery15最新好用的电脑免费数据恢复软件
  10. 【构成L1笔记:飞行道具】