jsp练习2

一、JSP的基本构成

1、指令标签(主要用于定义整个JSP页面的相关信息,不会产生任何内容输出到网页中)

<%@ 指令名称1 属性名称="属性值" ...%>,位于文件首位

(1)page指令

language属性:设置JSP页面使用的语言,目前只支持Java语言,默认值为Java

<%@ page language="java" %>

import属性:设置JSP导入的类包

pageEncoding属性:指定文件编码 <%@ page pageEncoding="UTF-8"%>

contentType属性: <%@ page contentType="text/html; charset=UTF-8"%>

(2)include指令(被包含文件的所有内容会被原样包含到JSP页面;被包含的文件有代码,不会被执行)

<%@include file="date.jsp"%> (不一定位于文件首位,可位于<body>标签中)

注意:被包含的JSP页面不要使用<html>和<body>标签,被包含进其他JSP页面会破坏页面格式;源文件与被包含的文件中变量与方法不能重名。

第一次出现如图所示问题,想起一个同学在jdk配置时出现中文,最后导致配置失败;于是我将原来project名字重命名为include,不是之前的“include指令”,再run,就运行成功了。所以,之后所有名称都尽量用英文,避免一些不必要的错误。

(3)taglib指令

2、HTML语句

3、注释

4、嵌入Java代码

5、JSP动作标签

二、嵌入Java代码 ( <% Java代码 %>)

  1. 如何记录生成某一成果耗时多少

<% long startTime =System.nanoTime(); //记录开始时间,单位纳秒

...

long time=System.nanoTime()-startTime;

out.println(time/1000); //输出用时多少毫秒

%>

毫秒

  1. 定义全局变量与全局方法

<%! long startTime =System.nanoTime();%>

<%! 方法%>

  1. JSP表达式

<% java表达式 %> 最后结果是字符串类型

三、注释

html注释与jsp注释区别:

  1. 表达方式

html:<%-- 注释文本 -->

jsp:<%-- 注释文本 --%>

  1. 在浏览器中查看网页源码时是否能看到注释内容

html注释能看到注释信息;jsp注释看不到注释信息

四、request 对象

1、获取请求参数值

在一个请求中,通过"?"来传递参数,然后通过request对象的getParameter()方法获取参数的值,可获取文本元素单选按钮单选下拉列表框

(1)先在web项目中建立idindex.jsp,其他部分不做更改,在<body></body>中加入即可

<body>

<a href="show.jsp?id=001">获取请求参数的值</a>

</body> 用超链接来请求show.jsp页面,并在请求后增加一个参数id

(2)新建show.jsp页面,其他不进行更改,仅在<body>中更改

<body>

id参数的值为:<%=request.getParameter("id") %><br>

name参数的值为:<%=request.getParameter("name") %>

</body>

不过要注意最后运行的时候在idindex.jsp页面运行,show.jsp运行出来id与name都会是null,没有传递参数。

运行show.jsp结果

运行idindex.jsp结果

2、获取Form表单的信息

使用getParameterValues()方法来获取复选框以及多选列表框被选定的内容,得到一个字符串数组,通过循环遍历这个数组来得到用户所选定的所有内容。

将书上的程序分别打入到formindex.jsp页面和formshow.jsp页面,果然出现了几下错误。

(1)<% %>中第二个百分号总是会显示如下提示:

但我的代码并没有问题,后面当我完全退出来eclipse,再重进它便又好了;并且虽有提示,但还是能顺利运行。

(2)

action后面的文件名一定要写对,否则会出现not available的错误。

(3)中文出现了乱码形式

按照老师提供的http://how2j.cn/k/servlet/servlet-gbk/554.html教程,在servlet进行解码和编码时,将new String(request.getParameter("name").getBytes("ISO8859_1"),"GBK" 中的GBK改成了UTF-8之后,再运行出来得到的结果便可以正确显示了。之所以这样行,是因为我的charset设置的是UTF-8,所以GBK就会显示不出;如果下面是GBK,那么将charset设置为GBK,也是同样可以显示出来。

五、response对象---重定向网页

response.sendRedirect(""); 可以将响应发送到另一个指定的位置进行处理。

六、session对象

创建session信息:session.setAttribute(关键词,对象);

获取session信息:session.getAttribute(关键词);

从会话中移除指定的绑定对象:session.removeAttribute(关键词);

销毁session:session.invalidate();

练习书上的练习题得出来的又出现了中文乱码:

解决方案:按照老师给的网站乱码解决方案,在request.getParameter()之前放上request.setCharacterEncoding("UTF-8"); 乱码问题便得以解决。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值