Jsp实践、Jsp案例之猜数
来源:互联网 发布:淘宝代工品牌怎么样 编辑:程序博客网 时间:2024/06/07 05:33
Jsp的最佳实践:
一、对比Servlet技术和Jsp技术
1、Servlet技术: 开发动态资源。是一个java类,最擅长写java代码。
2、jsp技术: 开发动态资源。通过java代码最擅长输出html代码。
二、如何处理Servlet技术和Jsp技术的关系
各取所长:在web项目中涉及到的逻辑:
1、接收参数—-servlet做
2、处理业务逻辑,返回结果—- servlet做
3、显示数据到浏览器—-jsp做
4、跳转到其他页面—-servlet做
servlet+jsp模式
三、分工:
1、servlet:
1)接收参数
2)处理业务逻辑
3)把结果保存到域对象中
4)跳转到jsp页面
2、Jsp:
1)从域对象取出数据
2)把数据显示到浏览器
四、Jsp案例:猜数
1、代码实现:
1)GuessServlet.java代码:
package sram.servlet;import java.io.IOException;import java.io.PrintWriter;import java.util.Random;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class GuessServlet extends HttpServlet { //定义全局变量,存储生成随机数 int answer; public void newGame(){ Random random = new Random(); answer = random.nextInt(30); } /* * 每次游戏开始都会自动产生一个新的随机数 */ public GuessServlet(){ newGame(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); request.setCharacterEncoding("utf-8"); String lucyNoStr = request.getParameter("lucyNo"); //判断幸运数字和用户的数字 //把用户输入的数字转成整数 Integer lucyNo = null;//Integer可以等于null,而int类型不可以 if(lucyNoStr==null||lucyNoStr.equals("")){ response.sendRedirect("/jsp_test/guess.jsp"); return; } lucyNo = Integer.parseInt(lucyNoStr); //标记记录当前竞猜的次数 Integer times = 0; //接收客户当前竞猜次数 String timeStr = request.getParameter("times"); if(timeStr==null){ times=1; }else{ times = Integer.parseInt(timeStr)+1; } if(times<=5){ String msg = ""; if(lucyNo>answer){ msg = "可惜了大了点!再试试!"; }else if(lucyNo<answer){ msg = "可惜小了点!再试试!"; }else{ msg = "恭喜你,中得百万现金大奖,请等待工作人员的联系!"; } request.setAttribute("msg", msg); request.setAttribute("times", times); }else{ //游戏结束 response.getWriter().write("游戏结束。<a href='"+request.getContextPath()+"/guess.jsp'>再来一盘</a>"); return; } //使用request域对象,要想实现页面跳转,必须使用转发,而不能使用重定向 request.getRequestDispatcher("/guess.jsp").forward(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); }}
2)guess.jsp代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>guess.jsp</title> </head> <body> <% //从request域中取出信息 String msg = (String)request.getAttribute("msg"); if(msg!=null){ out.write("<font color='red'>"+msg+"</font>"); } %> <% //获取竞猜次数 Integer times = (Integer)request.getAttribute("times"); if(times!=null){ out.write(",你还有"+(5-times)+"次机会!"); } %> <form action="/jsp_test/GuessServlet" method="post"> 请输入30以下的整数:<input type="text" name="lucyNo"/><br/> <% if(times!=null){ %> <input type="hidden" name="times" value="<%=times%>"/> <% } %> <input type="submit" value="开始竞猜"/> </form> </body></html>
2、效果图:
1)首页面:
2)猜数页面:
3)猜中页面:
4)次数达到页面:
0 0
- Jsp实践、Jsp案例之猜数
- jsp案例之在线聊天室
- jsp猜数游戏
- jsp实践
- jsp案例之输出九九乘法表(仅使用jsp脚本元素)
- JSP MVC模式案例之投票系统
- JSP小案例之cookie管理
- JSP内置对象之session对象案例
- JSP案例:之与各种数据库链接的案例代码
- jsp连接mysql案例
- GWT整合JSP案例
- 案例:JSP计算器
- jsp文档上传案例
- jsp完全案例
- jsp整合mybatis案例
- JSP标签使用案例
- JSP案例_Cookie传值
- jsp商品浏览案例
- 点击home键返回,再次点击图标应用重启
- matlab Data Type Conversion
- CentOS下的sudo相关配置的总结归纳
- Unity Editor 编辑器扩展 四 ScriptableObject类定制可序列化数据
- TCP基本套接字编程
- Jsp实践、Jsp案例之猜数
- 从数据库中随机抽取一条记录
- CSS3 转换(Transform)
- Homebrew
- LSTM源码分析
- maven6—pom.xml解析
- 数据采集及传输名词解释——比特率、波特率、码率、帧率
- Leetcode 44. Wildcard Matching (Hard) (cpp)
- 【二维数组】旋转方阵