Java Web学习(8):阶段小项目练习

一输出圆的信息

项目描述:编写一个JSP页面中声明圆的半径和计算方法,然后使用表达式,实现输出圆的半径,直径,面积和

周长的相关信息。

JSP实现代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>项目练习一</title>
</head>
<body>
      <h1>输出圆的信息</h1>
      <hr>
      <%!
            //圆半径r变量
	        int r=1;

            //返回圆的直径
	        int getDiameter(int r){
	            return r*2;
	        }

            //返回圆的周长
	        double getPerimeter(int r){
	            return 2*r*3.14;
	        }

            //返回圆的面积
	        double getArea(int r){
	            return r*r*3.14;
	        }
      %>
      半径:<%=r %><br>
      直径:<%=getDiameter(r) %><br>
      周长:<%=getPerimeter(r) %><br>
      面积:<%=getArea(r) %><br>
</body>
</html>

运行结果:

二打印九九乘法表

(1)使用JSP表达式打印九九乘法表

结果:

(2)使用JSP脚本打印九九乘法表

结果:

(3)两种方法比较

使用"result+="输出的是字符串,+=避免了类型转换的问题  而且运行速度快。

第一种是使用了java有返回值的方法,这个通过printMultiTable()得到的返回值String类型,直接就是一整个九九乘

法表的内容。

第二种是使用java含参无返回值的方法,加入的参数是JspWriter类的一个对象,在printMultiTable()方法中使用这

个对象out的方法println();在for语句中逐句将九九乘法表输出,相对来说第二种方法的开销(使用内存)小一点!

三遗留问题

(1)既然可以<% %>为什么还要有<%! %>

<%! %>专门用于声明,相当于全局变量用法,在哪都能找到。

<%! %>只能写变量声明,<% %>任何java脚本都能写。

<%! %>放在成员变量(方法外面),<% %>放在方法里面(局部变量)。

<% %>里的东西,下一个<% %>可以引用,只要顺序对,下面的都可以调用上面的<% %>。

(2)关于编码

pageEncoding是JSP文件本身的编码;contentType的charset是指服务器发送给客户端时的内容编码。

   JSP要经过两次的“编码”,第一阶段会用pageEncoding,第二阶段会用UTF-8至UTF-8,第三阶段就是由Tomcat

出来的网页, 用的是contentType。

  第一阶段是jsp编译成.java,它会根据pageEncoding的设定读取jsp,结果是由指定的编码方案翻译成统一的UTF-

8 JAVA源码(即.java),如果pageEncoding设定错了,或没有设定,出来的就是中文乱码。

  第二阶段是由JAVAC的JAVA源码至java byteCode的编译,不论JSP编写时候用的是什么编码方案,经过这个阶

段的结果全部是UTF-8的encoding的java源码。

  JAVAC用UTF-8的encoding读取java源码,编译成UTF-8 encoding的二进制码(即.class),这是JVM对常数字

串在二进制码(java encoding)内表达的规范。

  第三阶段是Tomcat(或其的application container)载入和执行阶段二的来的JAVA二进制码,输出的结果,也就

是在客户端见到的,这时隐藏在阶段一和阶段二的参数contentType就发挥了功效。

pageEncoding是JSP文件本身的编码。

contentType的charset是指服务器发给客户端时的内容编码。contentType更常用。

后续会有一篇专门来讲解JSP字符编码。

时间: 2024-10-21 23:52:10

Java Web学习(8):阶段小项目练习的相关文章

Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问

本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这部分内容需要以下Jar包支持 mysql-connector:MySQL数据库连接驱动,架起服务端与数据库沟通的桥梁: MyBatis:一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架: log4j:Apache的开源项目,一个功能强大的日志组件,提供方便的日志记录: 修改后的pom.xm

Java web 学习之旅

java web学习之旅 来公司十天了,感觉已经慢慢地融入了这个环境中,几个学长人都很好,都是在他们帮助下,我才能比较顺利的开始了学习java web的旅途. 来这里学习的第一个阶段是做一个简单的用户管理系统,其实,这对于我这个刚开始接触java web的“新手”来说还是有一点挑战的,所以在最开始制定学习计划的时候,我有意识的把时间拖的比较长,希望我又足够的时间来完成这个项目.而情况却比我想象的要好很多,现在8号我已经完成了,比预期的22号提前了十多天,可能是学习的过程因为有学长的帮助,比较简单

JAVA Web学习篇--Servlet

Servlet由来 做过BS项目的人都知道,浏览器可以依据HTML静态标记语言来显示各式各样的网页.可是假设我们须要在网页上完毕一些业务逻辑:比方登陆验证.或者说网页显示的内容在server的数据库中.假设是这样,除了负责显示的HTML标记之外,必须还要有完毕这些业务功能的代码存在.这样的网页我们就叫做动态网页. 对于静态网页而言,server上存在的是一个个纯HTML文件.当client浏览器发出HTTP请求时,server能够依据请求的URL找到相应的HTML文件,并将HTML代码返回给cl

Java Web学习(二) Eclipse的配置

Java Web学习(二) Eclipse的配置 一.下载Eclipse 1.进入Eclipse官网,进行下载 上图,下载Eclipse IDE for JaveEE Developers 版本,然后根据windows系统32位或64位,进行选择(建议64位).如果你的机器内存过小,可以选择Eclipse的旧版本:Eclipse Indigo .Eclipse Juno . Eclipse Kepler 等版本. 2.解压缩安装 打开压缩包,将里面的Eclipse 拖出到指定位置,进行解压缩.

java web 学习路线

Java Web学习路线   Java分成J2ME(移动应用开发),J2SE(桌面应用开发),J2EE(Web企业级应用),所以Java并不是单机版的,只是面向对象语言.建议如果学习Java体系的话可以这样去学习:   *第一阶段:Java基础,包括Java语法,面向对象特征,常见API,集合框架: *第二阶段:Java界面编程,包括AWT,事件机制,SWING,这个部分也可以跳过,用的时候再看都能来及: *第三阶段:Java API:输入输出,多线程,网络编程,反射注解等,Java的精华部分:

JAVA web学习例程源码分享

JAVA web学习例程源码分享JAVA web学习例程源码分享我自己也从里面学习到了很多东西! 1.BBS论坛系统(jsp+sql)2.ERP管理系统(jsp+servlet)3.OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR)4.博客系统(struts+hibernate+spring)5.车辆管理系统(struts+hibernate+spring+oracle)6.家庭理财系统(java+applet)7.教材订购系统(jsp+servlet

[原创]java WEB学习笔记95:Hibernate 目录

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

[原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

Java Web学习(一) Eclipse与Tomcat配置

Java Web学习(一) Eclipse与Tomcat配置 一.Eclipse的选择 使用基于Eclipse的STS Ide ,个人感觉挺好用的. 地址:http://spring.io/tools/sts 根据以上两张图片,将STS 下载下来.然后解压缩. 用编辑器打开STS.ini 文件,在最后一行,添加    -Dfile.encoding=UTF-8 这样以后所有用STS 创建的文件都是UTF-8的编码了. 二.JDK与Tomcat的安装与配置 1.JDK安装与配置 地址: http:

[原创]java WEB学习笔记6:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------