JSP和servlet结合案例
【使用JSP技术实现猜数字游戏】
设计一个web app,有一个随机数字,给5次机会让客户猜测这个数字:
1)如果客户猜的数字比产生的数字值大,则提示“可惜,大了点”。
2)如果客户猜的数字比产生的数字值小,则提示“可惜,小了点”
猜对了给出相对应的提示
对于应的代码
首先是jsp页面(主要是处理逻辑)
<%@page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>猜数字游戏</title> </head>
<body>
<%
String value=(String)request.getAttribute("answer");
Integer times = (Integer)request.getAttribute("times"); %>
<i><h1>请猜猜这个数字</h1>
<hr>
<form action="<%=request.getContextPath()%>/GuessServlet" method="post"> <input type="text" name="number"> <input type="submit"
value="确定">
<%
if(times!=null){
%>
<input type="hidden" name="times" value="<%=times %>" />
<%
if(value.equals("=")){
out.print("<p style='color:green'>啦啦啦,恭喜你答对啦,");
}else{
out.print("<p style='color:red'>你还有"+(5-times)+"次机会!同时你猜的有点"+value);
} %></p>
<%
}
%>
</form> </i>
</body>
</html>
然后就是servlet的代码:
package com.gqx.work; import java.io.IOException;
import java.io.PrintWriter; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class GuessServlet extends HttpServlet { /**
* 产生一个随机的数字(666),给5次机会让客户猜测这个数字
*/
private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
String num=request.getParameter("number");
Integer time=1;
String times=request.getParameter("times");
String value="";
int key;
System.out.println(times);
if (times !=null && !times.equals("")) {
time=Integer.parseInt(times)+1;
}
if (num=="" || num==null) {
value="请填入数字";
}else {
key=Integer.parseInt(num);
if (key==666) {
value="=";
}else if (key>666) {
value="大";
}else {
value="小";
}
request.setAttribute("answer", value);
} if (time>4) {
response.getWriter().write("游戏结束,<a href='"+request.getContextPath()+"/work1/guess.jsp'>再来一局</a>");
return;
}
request.setAttribute("times", time);
request.getRequestDispatcher("work1/guess.jsp").forward(request, response); }
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doGet(request, response);
} }
运行的截图;
JSP和servlet结合案例的更多相关文章
- JSP、servlet、SQL三者之间的数据传递
JSP.servlet.SQL三者之间的数据传递 博客分类: web开发 JSPservletSQL数据库连接池web开发 前言: 最近一直在做WEB开发,现总结一下这一段时间的体会和感触. 切记, ...
- JSP是Servlet详解
前言:前一段时间写了好多Servlet和JSP相关的博客,自以为理解的差不多了,岂不知人外有人,天外有天,代码外还有源码,受高人点拨,看了一下Servlet源码,感触颇深,再也不敢说懂了,不明白生活的 ...
- 【转】(超详细)jsp与servlet之间页面跳转及参数传递实例
初步学习JavaEE,对其中jsp与Servlet之间的传值没弄清楚,查看网上资料,发现一篇超详细的文章,收获大大,特此记录下来.具体链接:http://blog.csdn.net/ssy_shand ...
- JSP和Servlet的中文乱码处理
JSP和Servlet的中文乱码处理 前几天学习了JSP和Servlet中有关中文乱码的一些问题,写成了博客,今天进行更新一下.应该是可以解决日常的乱码问题了.现在作以下总结希望对需要的人有所帮助.我 ...
- 一、JSP、servlet、SQL三者之间的数据传递(前台与后台数据交互)
背景: 目前业界很流行的MVC(model-view-control)开发模式,理解为 模型是Bean, 视图是 Html/Jsp, 控制是Servlet, 关联数据库的Dao web的运行机制: 数 ...
- jsp和servlet中文乱码
jsp和servlet之间出现中文乱码的集中原因和解决方法详解:http://blog.csdn.net/longyuhome/article/details/7856270
- Jsp与servlet本质上的区别
1.jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)2.jsp更擅长 ...
- Jsp与servlet的区别 1
Jsp与servlet的区别 2011-12-09 16:27:47 分类: Java 1.jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识 ...
- Jsp与servlet的区别
Jsp与servlet的区别 2011-12-09 16:27:47 分类: Java 1.jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识 ...
随机推荐
- 快速发展的Swift是否将淘汰Objective-C?
随便拉上一个果粉说说这一年来苹果公司的成就,Apple Watch肯定排第一,再下来是iPhone破销量纪录及苹果30亿美元收购Beats Electronics,消息灵通的人说不定还会提到Apple ...
- java项目打成jar包时引用了第三方jar,此时我们该如何解决呢
Web项目做多了,反而对单纯的java项目陌生了,今天我们在开发项目的过程中,碰到一个这样的需求:需要将java项目放到linux系统上跑起来,当然这个javaSE项目是带main方法的.我们知道在I ...
- http://www.cnblogs.com/xdp-gacl/p/4040019.html
http://www.cnblogs.com/xdp-gacl/p/4040019.html
- VS2005 检测内存泄漏的方法(转载)
一.非MFC程序可以用以下方法检测内存泄露: 1.程序开始包含如下定义: #ifdef _DEBUG #define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __F ...
- 【java并发】线程同步工具Semaphore的使用
Semaphore通常用于限制可以访问某些资源(物理或逻辑的)的线程数目,我们可以自己设定最大访问量.它有两个很常用的方法是acquire()和release(),分别是获得许可和释放许可. 官方J ...
- Listview 异步加载图片之优化篇(有图有码有解释)
在APP应用中,listview的异步加载图片方式能够带来很好的用户体验,同时也是考量程序性能的一个重要指标.关于listview的异步加载,网上其实很多示例了,中心思想都差不多,不过很多版本或是有b ...
- [Mac]使用xcode命令行编译protobuf
因为不想每次测试与画面显示无关的小功能时把cocos2dx包含进去,所以改用xcode的command line tool直接建立c++项目. 方法: 1.点击file-new-project,选择o ...
- hadoop2.2编程:DFS API 操作
1. Reading data from a hadoop URL 说明:想要让java从hadoop的dfs里读取数据,则java 必须能够识别hadoop hdfs URL schema, 因此我 ...
- 【转】关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系
原文网址:http://www.cnblogs.com/cywin888/p/3263027.html 刚接触iOS开发的人难免会对苹果的各种证书.配置文件等不甚了解,可能你按照网上的教程一步一步的成 ...
- HDU-1395 2^x mod n = 1
http://acm.hdu.edu.cn/showproblem.php?pid=1395 怎样取余是关键.. 2^x mod n = 1 Time Limit: 2000/1000 MS (Jav ...