WEB核心【案例:JSP回显信息】第七章

举报
爱吃豆的土豆 发表于 2022/09/25 05:50:01 2022/09/25
【摘要】 目录 1,JSP回显信息 1,1 引言 1,2 概述及格式 1,3 课堂案例 1,4 JSP作用域回显 1,5 JSP导包及集合回显 1,6 案例代码实现 1,JSP回显信息 1,1 引言 目标:熟练掌握JSP信息回显技术 想要进行题目要求的回显: 使用Servlet拼接字符串是可以实现的 举个例子:...

目录

1,JSP回显信息

1,1 引言

1,2 概述及格式

1,3 课堂案例

1,4 JSP作用域回显

1,5 JSP导包及集合回显

1,6 案例代码实现


1,JSP回显信息

1,1 引言

目标:熟练掌握JSP信息回显技术

想要进行题目要求的回显:

使用Servlet拼接字符串是可以实现的

举个例子:一个Servlet程序进行写入页面回显:缺点就是很有缺点基本没人用,写了个示例大家了解一下


  
  1. public void run1() throws IOException {
  2. boolean result = true;
  3. String str = "";
  4. if(result){
  5. str = "登录成功";
  6. }else{
  7. str = "登录失败";
  8. }
  9. PrintWriter w = getResponse().getWriter();
  10. w.write("<!DOCTYPE html>\n" +
  11. "<html lang=\"zh-CN\">\n" +
  12. "\t<head>\n" +
  13. "\t\t<meta charset=\"utf-8\">\n" +
  14. "\t\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n" +
  15. "\t\t<meta name=\"viewport\" content=\"width=device-width,initial-scale=1\" />\n" +
  16. "\t\t<title>传智商城-登录页面</title>\n" +
  17. "\n" +
  18. "\t\t<link href=\"css/bootstrap.min.css\" rel=\"stylesheet\">\n" +
  19. "\t\t<link rel=\"stylesheet\" href=\"css/bootstrap-theme.min.css\" />\n" +
  20. "\t\t<script src=\"js/jquery-1.11.3.min.js\"></script>\n" +
  21. "\t\t<script src=\"js/bootstrap.min.js\"></script>\n" +
  22. "\t</head>\n" +
  23. "\n" +
  24. "\t<body>\n" +
  25. "\t\t<!-- 网站头部 -->\n" +
  26. "\t\t<div class=\"container\">\n" +
  27. "\t\t\t<div class=\"row\">\n" +
  28. "\t\t\t\t<div class=\"col-md-4\">\n" +
  29. "\t\t\t\t\t<img src=\"img/czxyLogo.png\" />\n" +
  30. "\t\t\t\t</div>\n" +
  31. "\t\t\t\t<div class=\"col-md-4\">\n" +
  32. "\t\t\t\t\t<img src=\"img/header.png\"/> \n" +
  33. "\t\t\t\t</div>\n" +
  34. "\t\t\t\t<div class=\"col-md-4\" style=\"padding-top: 20px;\">\n" +
  35. "\t\t\t\t\t<ul class=\"list-inline\" >\n" +
  36. "\t\t\t\t\t\t<li><a href=\"login.html\" class=\"btn btn-primary glyphicon glyphicon-user\">登录</a></li>\n" +
  37. "\t\t\t\t\t\t<li><a href=\"register.html\" class=\"btn btn-danger glyphicon glyphicon-plus\">注册</a></li>\n" +
  38. "\t\t\t\t\t\t<li><a href=\"cart.html\" class=\"btn btn-primary glyphicon glyphicon-shopping-cart\" onmouseover=\"showCartItem(this)\">购物车<span class=\"badge\">5</span></a></li>\n" +
  39. "\t\t\t\t\t</ul>\n" +
  40. "\t\t\t\t</div>\n" +
  41. "\t\t\t</div>\n" +
  42. "\t\t</div>\n" +
  43. "\t\t\n" +
  44. "\t\t<!-- 头部导航条 -->\n" +
  45. "\t\t<div class=\"container\">\n" +
  46. "\t\t\t<div class=\"row\">\n" +
  47. "\t\t\t\t<div class=\"col-xs-12\">\n" +
  48. "\t\t\t\t\t<nav class=\"navbar navbar-inverse\">\n" +
  49. "\t\t\t\t\t <div class=\"container-fluid\">\n" +
  50. "\t\t\t\t\t <div class=\"navbar-header\">\n" +
  51. "\t\t\t\t\t <button type=\"button\" class=\"navbar-toggle collapsed\" data-toggle=\"collapse\" data-target=\"#bs-example-navbar-collapse-1\" aria-expanded=\"false\">\n" +
  52. "\t\t\t\t\t <span class=\"sr-only\">Toggle navigation</span>\n" +
  53. "\t\t\t\t\t <span class=\"icon-bar\"></span>\n" +
  54. "\t\t\t\t\t <span class=\"icon-bar\"></span>\n" +
  55. "\t\t\t\t\t <span class=\"icon-bar\"></span>\n" +
  56. "\t\t\t\t\t </button>\n" +
  57. "\t\t\t\t\t <a class=\"navbar-brand\" href=\"index.html\">首页</a>\n" +
  58. "\t\t\t\t\t </div>\n" +
  59. "\t\t\t\t\t\n" +
  60. "\t\t\t\t\t <div class=\"collapse navbar-collapse\" id=\"bs-example-navbar-collapse-1\">\n" +
  61. "\t\t\t\t\t <ul class=\"nav navbar-nav\">\n" +
  62. "\t\t\t\t\t <li class=\"active\"><a href=\"product_list.html\">手机数码<span class=\"sr-only\">(current)</span></a></li>\n" +
  63. "\t\t\t\t\t <li><a href=\"#\">电脑办公</a></li>\n" +
  64. "\t\t\t\t\t <li><a href=\"#\">家具家居</a></li>\n" +
  65. "\t\t\t\t\t </ul>\n" +
  66. "\t\t\t\t\t <form class=\"navbar-form navbar-right\" role=\"search\">\n" +
  67. "\t\t\t\t\t <div class=\"form-group\">\n" +
  68. "\t\t\t\t\t \t<div class=\"input-group\">\n" +
  69. " \t\t\t\t\t\t\t\t<input id=\"wordsSearch\" type=\"text\" class=\"form-control\" placeholder=\"Search\" onkeyup=\"searchWords(this)\" onclick=\"showWordsList()\">\n" +
  70. " \t\t\t\t\t\t\t\t<div class=\"input-group-addon\" onclick=\"itemulClose()\">×</div>\n" +
  71. " \t\t\t\t\t\t\t</div>\n" +
  72. "\t\t\t\t\t </div>\n" +
  73. "\t\t\t\t\t <button type=\"submit\" class=\"btn btn-default\">Submit</button>\n" +
  74. "\t\t\t\t\t <!-- 显示查询信息的div -->\n" +
  75. "\t\t\t\t\t <div id=\"completeShow\" style=\"position:absolute;z-index:998;width:200px;\">\n" +
  76. "\t\t\t\t\t \t<ul id='itemul' class='list-group'>\n" +
  77. "\t\t\t\t\t \t\t<!--\n" +
  78. "\t\t\t\t\t \t\t<li class='list-group-item'><a href='#'>查询结果1</a></li>\n" +
  79. "\t\t\t\t\t \t\t<li class='list-group-item'><a href='#'>查询结果2</a></li>\n" +
  80. "\t\t\t\t\t \t\t<li class='list-group-item'><a href='#'>查询结果3</a></li>\n" +
  81. "\t\t\t\t\t \t\t<li class='list-group-item'><a href='#'>查询结果4</a></li>\n" +
  82. "\t\t\t\t\t \t\t<li class='list-group-item'><a href='#'>查询结果5</a></li>\n" +
  83. "\t\t\t\t\t \t\t-->\n" +
  84. "\t\t\t\t\t \t</ul>\n" +
  85. "\t\t\t\t\t </div>\n" +
  86. "\t\t\t\t\t </form>\n" +
  87. "\t\t\t\t\t </div>\n" +
  88. "\t\t\t\t\t </div>\n" +
  89. "\t\t\t\t\t</nav>\n" +
  90. "\t\t\t\t</div>\n" +
  91. "\t\t\t\t\n" +
  92. "\t\t\t</div>\n" +
  93. "\t\t</div>\n" +
  94. "\t\t\n"
  95. "</html>");

1,2 概述及格式

JSP是Java独有,比HTML更强大。重要:JSP本质是一个Servlet

除了可以展示HTML效果,还可以嵌入Java代码进行编程

IDEA源码中,可以看到JSP独有内容(包括java代码)

浏览器源码中,看不到JSP独有内容,只能看到htm+css+js

 


  
  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4. <title>Title</title>
  5. </head>
  6. <body>
  7. <%
  8. int a = 10;
  9. a+=20;
  10. %>
  11. <h1>你好<%out.write(""+a);%></h1>
  12. </body>
  13. </html>

 

小结:

JSP可以编写java代码,html不行。

1,3 课堂案例

课堂案例:JSP编写九九乘法表


  
  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4. <title>Title</title>
  5. </head>
  6. <body>
  7. <h1>九九乘法表</h1>
  8. <%
  9. //外层控制行
  10. for (int i = 1; i <=9 ; i++) {
  11. //内层控制列
  12. for (int j = 1; j <=i ; j++) {
  13. out.write(j+"*"+i+"="+(j*i)+"&nbsp;&nbsp;");
  14. }
  15. out.write("<br/>");
  16. }
  17. %>
  18. </body>
  19. </html>

1,4 JSP作用域回显

JSP展示作用域数据案例:

Servlet


  
  1. //需求:访问run2,向request作用域传递 username=小李,请求转发到demo3.jsp
  2. //demo3.jsp上进行username信息回显
  3. public String run2(){
  4. getRequest().setAttribute("username","小李");
  5. return "forward:/demo3.jsp";
  6. }

JSP:


  
  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4. <title>Title</title>
  5. </head>
  6. <body>
  7. <%-- 相当于:out.write(getRequest().getAttribute("username")) --%>
  8. <h1>${username}</h1>
  9. <%-- 获取不到该键值对,返回空字符串 --%>
  10. <h1>${xxxx}</h1>
  11. </body>
  12. </html>

 

 Servlet:getRequest().setAttribute("key","value");

请求转发到JSP

JSP:${key}

如果获取不到该键值对,JSP表达式,返回空字符串

1,5 JSP导包及集合回显

JSP导包和集合数据回显:


  
  1. <%@ page contentType="text/html;charset=UTF-8" language="java"
  2. import="java.util.List,java.util.Map,com.czxy.demo1.domain.Person"%>

<%@ page import="包1,包2"%>

Demo1Servlet:


  
  1. //需求:访问run4,向request作用域传递 List<Person>数据,请求转发到demo4.jsp
  2. //demo4.jsp上进行List<Person>数据回显
  3. public String run4(){
  4. List<Person> plist = new ArrayList<>();
  5. Collections.addAll(plist,
  6. new Person("007","坤哥","20"),
  7. new Person("008","隆哥","20"),
  8. new Person("009","骄姐","18")
  9. );
  10. getRequest().setAttribute("plist",plist);
  11. return "forward:/demo4.jsp";
  12. }

 Jsp:


  
  1. <%@ page import="com.czxy.demo1.domain.Person" %>
  2. <%@ page import="java.util.List" %>
  3. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  4. <html>
  5. <head>
  6. <title>Title</title>
  7. </head>
  8. <body>
  9. ${plist}
  10. <hr/>
  11. <%
  12. List<Person> plist = (List<Person>) request.getAttribute("plist");
  13. for (Person p : plist) {
  14. out.write(p.getId()+","+p.getName()+","+p.getAge()+"<br/>");
  15. }
  16. %>
  17. </body>
  18. </html>

1,6 案例代码实现

 login.jsp


  
  1. <form class="form-horizontal" method="post" action="/day04_1/d2">
  2. <input type="hidden" name="method" value="login"/>

Demo2Servlet


  
  1. public String login(){
  2. boolean result = true;
  3. String str = "";
  4. if(result){
  5. str = "登录成功";
  6. }else{
  7. str = "登录失败";
  8. }
  9. getRequest().setAttribute("msg",str);
  10. return "forward:/login.jsp";
  11. }

login.jsp


  
  1. <div class="col-xs-11 col-xs-offset-1">
  2. <b><font size="4" color="#2B669A">会员登录</font> USER LOGIN</b>
  3. <br/>
  4. <b><font size="2" color="red">${msg}</font> </b>
  5. </div>

最后:

        如果文章对您有帮助,就拿起小手赶紧给博主点赞💚评论❤️收藏💙 一下吧! 

        愿我们在未来的日子里。熠熠生辉!!!

文章来源: qianxu.blog.csdn.net,作者:爱吃豆的土豆,版权归原作者所有,如需转载,请联系作者。

原文链接:qianxu.blog.csdn.net/article/details/125010119

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。