JSP学习并实现的过程--day01

学习过程初次设想

其实一直以来都有设想过自己写一个简单的小网站,但是一直没有付诸实施,现在尝试一边学习一边实现。
目前具有简单的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=description
  content=这是心理学爱好者自编的网页,目前还在编写阶段,欢迎试用>
  <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=description
  content=这是心理学爱好者自编的网页,目前还在编写阶段,欢迎试用>
  <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=description
  content=这是心理学爱好者自编的网页,目前还在编写阶段,欢迎试用>
 <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

最后附上用例网址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
顺序如下: 1、多种字体大小显示 2、c:out标记输出 3、获取当前时间 4、include包含语句 5、建立错误处理页面的范例程序 6、jsp:forward 7、简单计数器 8、设置页面属性 9、使用GB2312编码 10、使用Big5编码 11、c:catch的用法 12、 begin、end和step的用法 13 、 循环 14、 varStatus 的四种属性 15、 的用法 16、从客户端传送数据至服务端 17、使用Unicode转义字符 18、使用朝鲜语字符集 19、JSP中最简单的国际化程序 20、错误检测 21、抛出异常 22、 的用法 23、和 的用法 24、 的用法 25、jsp-include的用法 26、汉字处理 27、网页重定向 28、自动更新网页 29、存取session 30、 的用法 31、单选型列表框 32、jsp文件中定义类 3 3、取得 JSP Container 版本 34、javax.servlet.jsp.JspWriter - out 对象 35、page 隐含对象 36、application 对象 37、PageContext 对象 38、Page范围 - pageContext 39、测试要显示的中文 40、IF控制符的操作 41、HttpServletRequest 接口所提供的方法 42、 网上测验 43、HttpSession - session 对象 44、 多选型列表框 45、解决浏览器 cache 的问题 46、使用 EL、JSTL 处理表单数据 47、 EL隐含对象 param、paramValues 48、EL隐含对象 pageContext 49、EL算术运算符 50、EL关系运算符 51、EL的运算符 52、选择钮的使用 53、检查框的使用 54、群组检查框的使用 55、数字、货币、百分数格式化 56、日期格式化 57、JSTL设置语言地区 58、Cookie数据的存取 59、session有效时间的设置与取得 60、session时间与ID 61、Cookie有效时间的设置 62、利用隐藏字段传送数据 63、JSP 使用 JavaBean 的方法 64、JSP 使用 JavaBean 65、范围为 Page 的 JavaBean范例程序 66、范围为 Request的 JavaBean 67、范围为 Session 的 JavaBean 68、范围为 Application 的 JavaBean 69、删除 JavaBean 70、url重组 71、Switch语句 72、环境变量 73、forward重定向 74、文件的建立与删除 75、取得文件属性 76、取得目录中的文件 77、目录的建立与删除 78、自Cookie存取日期/时间数据 79、管理Session变量 80、数据库中的记录数与记录指针位置 81、利用absolute方法设置记录位置 82、使用jsp指令生成Word文档 83、JSP网页模板 84、判断是否空白文件 85、cookie 用户登录次数 86、获取用户的真实IP地址 87、获取用户的浏览器信息 88、在客户端进行数据检查 89、在JSP中获取当前绝对路径 90、读取表单中所有参数 91、分行写入数据 92、显示请求URL 93、判断session是否过期 94、参数式查询数据库 95、取得数据库中各栏名称 96、使用JavaBean、设置和获取Bean的属性 97、设置Bean的一个属性与输入参数关联 98、实现基于数据库的站内搜索 99、DOM读取XML文档 100、SAX读取XML文档

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值