• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
旧街古巷〃雨未停
每天进步一点
博客园    首页    新随笔    联系   管理    订阅  订阅

jsp

Servlet:做动态网站的
JSP:做动态网站的

Servlet最大的缺陷:

1、写html标签的时候 很麻烦(JSP可以解决)
    网上搜:html转js  sevelet没有
    不好改,重新生成
2、编码设置特别讨厌(过滤器技术)
3、一个servlet对应一个小功能(每个操作)(三阶段Struts)

JSP:概念三个单词java server page     java服务器页面

很象html,但是可以在上面写java代码
   数据从数据库拿出来,放在表格里
   javascript在浏览器上
   java代码是客户端代码
11运行myeclipse
 建立web工程->jsp1,勾选上xml-打开jsp
 第一行:页面自动检测乱码  定义页面,用什么语言,导入哪些包  
  修改编码:首选项->myeclipse ->file and editors ->jsp ->utf-8
 第二行:<%啥意思
 第三行
 第四行 看看象什么代码? 用%>括号
 改html5 删除html后面东西
 第10<%=表达式 %>打印,像outpint
 组成
访问jsp:
1、不需要重启服务器  访问的时候编辑代码
2、不需要配置文件  
     启动tomcat--访问http://localhost/jspTest/test1.jsp
      控制台就输出"haha"->回下
    

JSP页面主要由两个部分组成:
一、html代码
二、java代码
1、jsp脚本(里面可以写上java代码) <%java代码%>
    可以写在任何地方,新建一个写在body里,快捷键不能用,可以用.出来<body>
    <%
      System.out.print("haha");
     %>
  </body>
    访问jsp:爽到什么地方 ?回上
java语句,里面一定不能写方法的定义(演示)
          写数据类型,打印控制台,打印到页面上
          servlet如何打印的,req.print
          java打印页面上out.print()
          <%
      System.out.print("haha");
      int num=10;
      for(int i=1;i<10;i++){
         out.print(i);//换行
         out.print("<br/>");
      }
     %>

jsp脚本可以形成片段
     <%
      System.out.print("haha");
      int num=10;
      out.print(num);%>
      <hr style="height:180px">
      
      <%for(int i=1;i<10;i++){
         out.print(i);//换行%>
         <br>
     <% }%>

2、jsp表达式 <%=java表达式%>   等同于 out.print(java表达式);
         <%
      System.out.print("haha");
      int num=10;
      //out.print(num);%>
     <%=num%>
      <%=new Date() %>
     练习乘法表
下午课程:
    打印出来再更改 用out.print(“<table>”) 再修改
3、jsp声明 <%! java方法的定义 %>
         <body>
        <%!
            public String func1()
            {
                System.out.print("haha");
                return "xixi";
            }
        %>
        
        <%
            this.func1();
        %>
        
        <%=this.func1()%>
        
        <%-- jsp的注释,肚子好饿 --%>
  </body>

4、jsp注释: <%-- jsp注释 --%> 生成html页面看不到,(服务器端)代码中可以看到  演示看源码 注意:面试会问到

5、jsp指令: 
page指令:往往写在第一行,(导包会用到)定义页面的一些信息
     如何导包?test3 为何在脚本中不能定义方法?为何没有快捷键
   src 建立包--建立一个类UserService--test方法  jsp如何使用这个方法?
   建立jsptest4 导入多个包<%@page import=" "%>
   <%@ page import="com.james.jsp.*"%>
     
  <body>
    <% 
       UserService us = new UserService();
       us.test();
     %>
  </body>
<%=(String)session.getAttribute("key")%>
session 在今天后就不用了,request response 都有
 建立test5  test6.jsp接收
  test5:
 <body>
          
  
          <form action="test6.jsp" method="post">
          用户名:<input type="text" name="username" /><br/>
          密码:<input type="password" name="password" /><br/>
          <input type="submit" value="点我" />
          </form>
           
  </body>
test6
<body>
           <%
               request.setCharacterEncoding("UTF-8");
               String username = request.getParameter("username");
               String password = request.getParameter("password");
           %>
           
           <%=username %>  //美工一看就知道
           <%=password %>
           //跳转--重定向
           <br/>
           
           <script type="text/javascript">
           alert('haha');
           </script>
           
           <% 
               //重定向跳转 然后弹框
               response.sendRedirect("http://news.baidu.com");
           %>
           
  </body>

test7 测试session  test4获取值
    <body>
           <%
               session.setAttribute("key", "maoyun");
           %>
  </body>
    test4追加
    <%=(String)session.getAttribute("key")%>
先访问test7,再访问test4
进入9大内置对象

6、jsp动作:(明天讲 代码在最后)
<jsp:动作名 />



练习:在页面上打印矩形的99乘法表,用表格定位

1*1=1 1*2=2 1*3=3
2*1=2 2*2=4 2*3=6
3*1=3 3*2=6 3*3=9

要求:
1、不能使用out.print,也不能将html打印在页面
2、给表格背景加上间变色(奇数行是黄色,偶数行是绿色)
  <body>

    <table border=1>
        <%
            for (int i = 1; i < 10; i++) {
                if (i % 2 == 1) {
        %>
        <tr style='background-color: yellow;'>
            <%
                } else {
            %>
        <tr style='background-color: green;'>
            <%
                }
                    for (int j = 1; j < 10; j++) {
            %>
            <td><%=i + "*" + j + "=" + i * j%></td>
            <%
                }
            %>
        </tr>
        <%
            }
        %>
    </table>

</body>
   回到3
JSP的内置对象:

out
request
response
session(私人小仓库)

application:大仓库
  测试:test8
<body>
        <%
            application.setAttribute("kfc", "maidanglao");
        %>
        8888888888888888888888888888
  </body>
 test4取东西
<%=(String)application.getAttribute("kfc")%>
  先test7->test8->test4
  然后换个浏览器访问 test4 session 得不到,application得到
  application作用 刷新进入数据库, 公告存到缓存  主要区别,大项目时到时体现?
out request response session 都有对应的对象
application 对应对象啥玩意 test4 application提示:servletCotext servlet上下文->写一个java代码 test servlet建立
   代码:ServletContext application = this.getServletContext();
        
        application.setAttribute("xxx", "yyy");
   先访问servlet地址-》test4 ,验证ServletContext 对应application

?jsp写forword转向怎么办?

   <body>
           <jsp:forward page="test8.jsp"></jsp:forward>
  </body>
 test8加上显示的8888888888
一个页面两个功能:test5修改
<body>
          <%=request.getParameter("username")%>容易抛空指针异常,先判断
  
          <form action="test5.jsp" method="post">
          用户名:<input type="text" name="username" /><br/>
          密码:<input type="password" name="password" /><br/>
          <input type="submit" value="点我" />
          </form>
           
  </body>
作业:5个页面5个功能
servlet 打印html代码麻烦
jsp  java代码麻烦


作业:
将servlet综合作业用纯jsp重新写一遍
要求:不能有servlet

1、register.jsp--一张完成注册
2、login.jsp   登陆
3、edit.jsp    编辑
4、index.jsp   显示所有用户
5、user.jsp ?id=1   显示单个用户的信息
//服务器可以问号传参?
 test5  username=aaa
附加题:

对于登录的用户名和密码的验证结果,在登录页面上给出提示,不用弹框提示

用户名和密码的提示要分开,


95年的时候都用纯servlet开发网站
99年的时候都用纯jsp开发网站

2002年


2006

 

posted @ 2017-08-10 19:21  旧街古巷〃雨未停  阅读(129)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3