zoukankan      html  css  js  c++  java
  • Jsp基础知识总结转自动态网站制作指南 转

    jsp我们学完也有好长一段时间间了,过程中总结的一点点基础知识,拿来与初学者分享,直到最后做我们一个小小的项目,宠物医院,也是用我们最简单的工具Jcreater4.0来做的,呵,到了Ecliplse下才发现,开发速度如此之快,不过这样也打好了我们的基础....不多说了,把所学到的小小总结发来至此吧,愿给初学者带来便利,同时愿高人给以指点不足之处.....

        首先来说一下我们jsp的课程:第一部分为Servlet技术,包括Servelt入门,会话跟踪,javaMal和Servlet.第二部分就是Jsp技术,包括:jsp简介,jsp脚本和指令的使用,jsp隐式对象,JavaBean与jsp中的标准动作,jsp表达式语言,自定义标签,jsp自定义表签库.第三部分就是过滤器的设计模式,包括过滤器和MVC设计模式.

        一.Servlet知识及常见错误和规律.

    1.桌面运行程序与WEB应用程序在过程实质是一样的---基于请求与响应的过程.
    2.http协议(超文本传输协议)
      1).无状态:多次请求信息之间无联系.
      2).用于internet发送请求和响应消息
      3).使用端口接收和发送消息,默认为80端口.
    端口:为内存缓冲区(多线程接收数据)
    windows: 0---65535端口
      0---4096为系统端口
    3.什么是Servlet?
      Server let服务器端小程序.
      用来处理客户端发送的请求,并由服务器响应给客户端的java编写的程序.
      Servlet只在服务器运行

    4.Servlet详解:
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.util.*;
    public class MyServlet extends HttpServlet
    {
              public void doGet(HttpServletRequest request,HttpServletResponse response)
                            throws ServletException,IOException
              {
                           response.setContentType("text/html;charset=gb2312");
                           request.setCharacterEncoding("gb2312");
     
                            response.sendRedirect("Login.jsp"); //重定向方法
                            request.getParameter("");  //读取客户端数据

                           / /以下方法为转发,不同于重定向的是:转发时数据不丢失.
                          ServletContext context=this.getServletContext();
                          RequestDispatcher dispatcher=context.getRequestDispatcher("/welcome.jsp");
                          dispatcher.forward(request,response);
     
                          ...//以下方法为包含(用得相对较少)
                         dispatcher.include(request,response);

              }
             public void doPost(HttpServletRequest request,HttpServletResponse response)
                            throws ServletException,IOException
             {
                         doGet(request,response);
             }
    }

     (2).当需要向Servlet传递参数的时候,Src="Servlet?name=' '  ";

    5.执行servlet时,发生下载提示:

    (1).可能性一:text/html;charset=GBK中间分号写成逗号.
    (2).可能性二:xml中配置信息出错.
    (3).可能性三:如定义全局变量时,例:CONTENT_TYPED在以后所用中放在双引号之中.
    (4).可能性四:当上面的text/html,charset中写错字符的时候,也会提示下载.

    6执行servlet时,发生404错误:

    (1).多为xml中配置出错.
    (2).可能在servlet通信方法中url出错.
    (3).表单提交时:action路径.
    (4).比较弱智的错误就是标记写错,请仔细检查.

    7.执行servlet时,发生403错误:

    (1).tomcat下站点里发生错误.

    8.执行servlet时,发生405错误:

    (1).servlet中没有post提交方法时.

    95.执行servlet时,发生500错误:

    (1).多数为servlet程序代码中发生异常错误.

    10.执行时,取出的数据为null.就要根据实际情况对应错误提示去找.

    11.执行jsp页时,发生500错误提示....
      
            多数为jsp页面在转译过程中发生编译错误! 甚是严重错误,可以按提示回头去找...


    二.XML配置

    <!--config中的配置信息,当中配置需要在servlet中的xml中-->
    <servlet>
     <init-param>
      <param-name>sess</param-name>
      <param-class>com.serv<param-class>
     </init-param>
        <servlet-name>Myservlet</servlet-name>
        <servlet-class>com.Myservetl</servlet-class>
    </servlet>

    <!--此为对Myservlet进行映射-->
    <servlet-mapping>
     <servlet-name>Myservlet</servlet-name>
     <servlet-class>/url</servlet-class>
    <servlet-mapping>

    <!--context中配置信息-->
    <context-param>
     <param-name>ses</param-name>
     <param-class>com.ser</param-class>
    </context-param>


    注意:配置信息只能读取,并且config是在单个Servlet中能访问,context是全局访问

    三.
    ========================会话跟踪技术总结========================

    用户授权.
    隐藏表单域
    URL重写
    Cookie使用
    --------------------------------------------------------------------------------------------
    1.会话:是同一客户端和服务器之间在同一段时间的多次请求和响应.

    2.session使用(重点)

      HttpSession session=request.getSession();
      session.setAttribute("name",Object); //附值
      session.getAttribute(); //取值
      session.removeAttributer();

    3.Cookie(类)
     1).Cookie是什么?
          cookie是一段字符串,由HTTP支持,在客户端可以永久保存.写入(硬盘).
          每次请求,响应中都会为cookie留有空间.
     2).用法:
            Cookie cookie=new Cookie("name",cookie); //必须指定cookie的键与值,且必须为字符串.
            response.addcookie(cookie);
            cookie.setMaxAge(3600);  //以秒为单位.
     
     //读取客户端发送过来的cookie,返回值类型为: cookie数组
     request.getCookies();
     //循环读取键与值.

       使用过程:(1).生成cookie, new cookie("","")
       (2).设置生存周期 >0,SetMaxAge(秒).
       (3).发送到客户端:response.addCookie(cookie);

    小常识:(1).一个网站最多向一个客户端写20个cookie.
                 (2).一个客户端最多接收300个cookie.

    4.Session与Cookie这间的关系:
    session的ID作为Cookie的值在客户端与服务器之间进行传递.
    --------------------------------------------------------------------------------------------

    四.构建实体Bean的原则:

    /*
     *  1.bean类为公有
     *  2.类成员为私有
     *  3.必有一个无参构造
     *  4.有set()和get()方法
     *  5.方法命名为setXxx()或getXxx()方法
    */


    五.MVC实现数据封装

    此数据封装标准按MVC总结.

    所需内容: 1.Servlet 2.JavaBean 3.OperBean(DBconnection) 4.Jsp

      由Servlet提取前台数据,然后将数据封装于JavaBean中,再实例化OperBean,调用OperBean中方法,
    将JavaBean对象以参数的形式传过去,并进行一系列的操作后,返回数据存入ArrayList中或者其它集合内,并将集合对象封装Session对象中,便于在前台取值.

    Servlet控制:

      ........
     Arraylist lis=new ArrayList();

     String name=request.getParameter("username");
     
     JavaBean bean=new JavaBean();
     bean.setName(name);
     
     OperBean oper=new OperBean();
     lis=oper.operMethod(bean);

     HttpSession session=request.getSession();
     session.setAttribute("list",lis);

    OperBean逻辑:
     ...
     public ArrayList OperMethod(JavaBean bean)
     {
      ArrayList lis=new ArrayList();
      String usr=bean.getName("name");
     
      String sql="select * from student where name='"+usr+"'";
     
      DBconnection db=new DBconnection();
      ...//操作数据业务
     
      return lis;
     }

    前台业务:
     ...
     ArrayList list=(ArrayList)session.getAttribute("lis");
     Iterator ite=list.iterator();
     while(ite.harNext())  //遍历输出
     {
      JavaBean bean=(JavaBean)ite.next();
      .
      //取bean中值
     }


    //由此可以进行"用户登陆","数据的增删改查","注销登陆"等操作.....

     以上所有jsp技术都是没有与struts等框架相关的,只是简单的MVC思想,只有懂得以上简单的思想,才可以进一步的对框架这些高层次的东西钻研,我感觉是如此,毕竟我也是个初学者,还有好多知识不懂,也在不停的学习之中,如果有哪个朋友有好的见意或者好的学习方法,请多多指教!


    资料引用:http://www.knowsky.com/343935.html

  • 相关阅读:
    接收xml请求流并解析字符串的例子
    通过style来控制隔行显示不同颜色 .
    显示有模式的有页面的弹出窗口 .
    WSDL生成服务端JAVA代码.bat
    web上下文监听器ServletContextListener 例子 .
    使用监听器:定时清除map缓存的key value .
    Timer和TimerTask类 例子 .
    常用的正则表达式
    算法找出数组中出现次数超过一半的数
    C++讨厌的临时变量什么时候产生
  • 原文地址:https://www.cnblogs.com/ideaplusl/p/2095638.html
Copyright © 2011-2022 走看看