JSP程序应该是每本Java Web入门书籍的首要介绍的内容,本文参考指导书中的示例,记录JSP的基本知识。

程序功能

  编写一个简单的留言簿,用户登录后可以在线留言,留言提交后可以显示留言内容。用户登录失败,会提示错误信息,并重新跳转到登录界面。

涉及的JSP技术

  1、JSP表达式:<%= 表达式 %>
  2、JSP代码片段:<% Java代码或脚本代码%>
  3、请求转发表示<jsp:forward>
  4、request对象:获取客户端HTTP请求中的各项参数;
  5、response对象:响应请求,向客户端输出信息;
  6、Application对象:保存所有应用程序中的共有数据,本文中拿来保存留言。

项目开发过程

  准备创建四个JSP文件:login.jsp,用于用户登录;deal.jsp用于判断是否合法用户;error.jsp显示非法用户信息;MessageBoard.jsp用于显示和提交留言。
  新建JSP项目,命名为MyMessageBoard,如下图所示:

  新建login.jsp文件,并编写简单的HTML用于输入用户名和密码。

<div align="center">用户登录<br>
<hr width="30%" size="3" style="background-color:rgb(64,0,0);">
<br>
<form action="deal.jsp" method="post" name="login"><p>用户名:<input type="text" size="15" name="userName"/></p><p>密码:<input type="password" size="15" name="userPassword"/><br></p><p><input type="submit" value="确定" name="submit"/></p>
</form>
</div>

  接着新建deal.jsp,用于判断用户名和密码是否正确,这里因为没涉及数据库,所以就先写死一个用户名和密码,如何用户名和密码正确就跳转到留言簿页面,如果不正确就跳转到报错界面。

<body>
<%String userName=request.getParameter("userName");String userPassword=request.getParameter("userPassword");if(userName.equals("gc_2299") && userPassword.equals("123456")){request.getRequestDispatcher("messageboard.jsp").forward(request,response);}else{response.sendRedirect("error.jsp");}
%>
</body>

  然后新建error.jsp,用于显示用户名密码错误信息,然后定时跳转到登录页面。

  response那句代码可以实现定时跳转。

<title>用户名密码错误</title>
</head>
<body>
你输入的用户名或密码有误,2秒后将跳转回登录页面!
<% response.setHeader("refresh", "2;URL=login.jsp");%>
</body>


  最后创建留言簿页面,由于水平有限,就弄了一个特别简陋的页面。
  JSP代码逻辑如下所示,最上方显示当前用户和IP(直接从request中取的,每次刷新页面值就变成null了),在application中存每次的留言(就是一直拼字符串),最下方是写留言的地方,写完后提交给当前页面自己处理。

<div>
<%String userName=request.getParameter("userName");String userIP=request.getRemoteAddr();String msg=request.getParameter("msg");String allMsgs="";if(msg!=null){allMsgs=(String)application.getAttribute("messages");if(allMsgs==null){allMsgs=msg;}else{           allMsgs+="<br>"+msg;}application.setAttribute("messages", allMsgs);}
%>
当前用户:<%=userName %>;IP:<%=userIP %>
</div>
<div>
已有留言:<br>
<%=allMsgs %>
</div>
<div>
请输入留言:
<form action="messageboard.jsp" method="post" name="mb">
<input type="text" name="msg">
<p><input type="submit" value="留言" name="submit"/></p>
</form>
</div>

  下面是登录成功的效果。

  下面是输了很多次之后的效果,application生存期很长,我提交的内容一直都在里面留着,刷新了页面也没有丢。

  本文就到这里了,上面的代码主要是为了示意功能,里面的问题很多,就不去完善了。后续会接着写java bean 和servlet的文章,也会抽时间接着学习swing。

参考文章:
[1]Java Web设计使用教程
[2]Java Web从入门到精通

Eclipse创建JSP程序相关推荐

  1. 解决eclipse创建jsp文件后的报错

    目录 创建jsp文件后出现一下报错: 解决步骤有两种: 第一种: 图片操作步骤: 第二种: 创建jsp文件后出现一下报错: 解决步骤有两种: 第一种: 1.找到新建页面(报错)所在的工程名字,然后左键 ...

  2. JSP→JavaWeb简介、Tomcat服务器安装启动测试目录、Tomcat手动创建项目、开发工具MyEclipse与Eclipse配置环境、MyEclipse创建Web程序目录、修改Tomcat端口

    动态网页的动态指的是能与用户进行交互 Tomcat官网http://tomcat.apache.org/ Tomcat服务器安装启动测试目录 Tomcat手动创建项目 修改服务器配置生效需要重启!重启 ...

  3. 使用图形编辑框架GEF创建基于Eclipse的应用程序

    简介: 了解使用图形编辑框架(Graphical Editing Framework,GEF)创建基于 Eclipse 的应用程序涉及的最初步骤.此外,介绍了目前在 Eclipse 中引导创建图形编辑 ...

  4. 如何在eclipse中创建jsp工程项目

    第一种方法:[File]----[new]----[Dynamic Web project] 第二种方法:[File]----[new]----[project]----[web]----[Dynam ...

  5. 使用Eclipse创建Java应用程序,实现从控制台输出多行信息:姓名、年龄、爱好

    使用Eclipse创建Java应用程序,实现从控制台输出多行信息:姓名.年龄.爱好. package com.whx.demo; import java.util.Scanner; public cl ...

  6. eclipse中创建jsp页面报错

    eclipse中创建jsp页面报错,怎么办呢 在Eclipse中新建jsp的话,很可能会出现报错.下面,我们来看看eclipse中新建jsp页面出错怎么解决吧 操作步骤 1.找到新建页面所在的工程名字 ...

  7. Eclipse中安装配置Tomcat和创建JSP项目

    这里写自定义目录标题 安装配置Tomcat 创建JSP项目 安装配置Tomcat 下载并解压Tomcat到指定目录 Eclipse菜单栏中找到Window–>Preperences->Se ...

  8. 使用eclipse创建javaweb项目时在jsp页面出现的404servlet找不到的问题

    新手小白的第一篇文章--使用eclipse创建javaweb项目时在jsp页面出现的404servlet找不到的问题 小白在做期末项目的时候出现了404servlet找不到的问题 一开始出现的问题的时 ...

  9. 使用eclipse创建的第一个jsp项目

    1.创建web项目 首先打开eclipse->file->new->Dymanic Web Project(如果没有这个选项,选other,打开搜索web) 点finish,web项 ...

  10. JavaWeb(十)——jetty服务器、创建jsp项目、servlet生命周期及url的匹配规则

    文章目录 1. jetty服务器的下载与安装 1.1 jetty简介 1.2 jetty的下载与安装 2. idea创建jsp项目 3. idea给jsp项目导入jar包 4. 编写第一个servle ...

最新文章

  1. luogu P5142 区间方差(线段树、乘法逆元)
  2. 人脸图像聚类实战及TSNE可视化分析
  3. json - 使用 json-lib
  4. python 基础学习3-函数
  5. 《大道至简》第七八章读后感
  6. oracle00333,Oracle数据库REDO损坏ora-00333修复手札
  7. tensorboard报错:ValueError Duplicate plugins for name projector 问题的出现及解决过程
  8. N皇后问题的解(洛谷P1219题题解,Java语言描述)
  9. 肿瘤坏死因子(TNF)阻断剂治疗幼年型银屑病关节炎: 有效吗
  10. jeecms v9导入myeclipse 2015 ehcache.xml报错问题
  11. 深入理解机器学习中的信息熵、KL散度、交叉熵
  12. 车辆运动控制(2)车辆横摆动力学建模
  13. 这些APP专注于大众的生活,致远互联专注于他们的管理
  14. 自组织映射神经网络(SOM)
  15. Apache DolphinScheduler 3.0.0 正式版发布!
  16. 开源和免费的gis软件工程索引
  17. 阿里支付系统就该这么设计(万能通用),稳的一批!
  18. Laravel + EasyWeChat 微信登陆功能
  19. TPS和事务响应时间的关系、计算公式
  20. Camshift知识点

热门文章

  1. PASS云计算书简介——接近完美的模式
  2. [VOSViewer] 合并同义词、删除指定词语
  3. 【校招】SHL 的 General Ability (GA, 通用能力测试)
  4. 计算机组成原理强制类型转换规则,计算机组成原理——浮点数加减运算强制类型转换...
  5. Uipath打包流程为.nupkg文件
  6. WS2 安装ubuntu +迁移+vscode
  7. 免费的录屏软件,来试试这一款软件吧!
  8. HTML制作简易个人简历(表单)
  9. 在区块链的世界里,美国CFTC希望成为一个节点
  10. Snap7 在西门子PLC的使用