javaEE学习笔记

来源:互联网 发布:计算机的发展史软件 编辑:程序博客网 时间:2024/06/14 21:17

Initdestroy只被调用一次,service可被调用多次,属于不同的线程

  

获取配置文件中的参数:

ServletConfig  用于获取在xml文件中设置的常数值

法一:有参的初始化方法

Public void init(ServletConfig  config) throws ServletException{

Print(init);

System.out.println(init-param:+config.getInitParameter);

}

 

法二:无参的初始化方法

Public void init() throws ServletException{

Print(init);

String  test = getInitParameter(test);

System.out.println(init-param:+test);

}

 

 

事件能获取那些内容?

<listener>

 <listener-class>com.iotek.jee.listener.WebContextListener</listener-class>

</listener>

com.iotek.jee.listener包名

WebContextListener实现了ServletContextListener接口的类名

 

  1. 所有的Servlet都有,且只有一个getServletContext()方法,Servlet的所有组件都可以访问它

    可用于获取全局的变量

  2. getServletContext()方法 写在service方法中

     

     

    getContextPath()获取的是 工程名

     

     

    getQueryString()  用于get请求

    获取请求页面后面的字符串参数name=admin&password=123456  

    如:localhost:8080/WebServlet/index.jsp?name=admin&password=123456

     

     

    在客户端可以用   ajax、表单、超链接  提交用户的数据请求信息

     

    超链接  是小型的表单  是get提交方法

     

     

     

     

    由客户端引起的错误  服务器发现客户请求的资源是不存在的

     

     

    req.setCharacterEncoding(UTF-8):只适合post请求方式  避免客户端输入含有中文的超链接的参数值时 在服务器端出现乱码 get请求方式无效

     

    Get方式默认的字符编码为ISO8859-1

     

    表单默认是get请求

     

    action指定由该表单有那个servlet处理

     

    resp.getWriter().write(name:+name+,age:+age);在客户端的浏览器输出信息

     

      

    代码提示:Alt+/

    index.jsp的代码如下:

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

    <%

    String path = request.getContextPath();

    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

    %>

     

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

    <html>

      <head>

        <base href="<%=basePath%>">

        

        <title>My JSP 'index.jsp' starting page</title>

    <meta http-equiv="pragma" content="no-cache">

    <meta http-equiv="cache-control" content="no-cache">

    <meta http-equiv="expires" content="0">    

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

    <meta http-equiv="description" content="This is my page">

    <!--

    <linkrel="stylesheet" type="text/css"href="styles.css">

    -->

      </head>

      

      <body>

        <form method="post" action="prossesing">

        姓名:<input name="name"/><br/><br/>

        年龄:<input name="age"/><br/><br/>

        上传:<input type="file" name="file"/><br/><br/>

        <input type="reset" name="reset" value="取消"/><br/><br/>

        <input type="submit" name="submit" value="提交"/><br/><br/>

        </form>

      </body>

    </html>

     

     

    Servlet类的代码如下:

    package com.iotek.jee.servlet;

     

    import java.io.IOException;

     

    import javax.servlet.ServletException;

    import javax.servlet.http.HttpServlet;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

     

    public class ProssesingServletextends HttpServlet {

     

    private static final long serialVersionUID = 1L;

     

    @Override

    protected void doPost(HttpServletRequest req, HttpServletResponse resp)

    throws ServletException, IOException {

    req.setCharacterEncoding("UTF-8");//解决中文乱码的步骤1

    String name = req.getParameter("name");

    String age = req.getParameter("age");

    resp.setContentType("text/html;charset=UTF-8");//解决中文乱码的步骤2

    resp.getWriter().write("name:"+name+",age:"+age);

    }

    }

     

    <form method="post" action="prossesing" enctype="multipart/form-data">

        姓名:<input name="name"/><br/><br/>

        年龄:<input name="age"/><br/><br/>

        上传:<input type="file" name="file"/><br/><br/>

        <input type="reset" name="reset" value="取消"/>

        <input type="submit" name="submit" value="提交"/><br/><br/>

    </form>

    表单含有enctype="multipart/form-data"属性的  需要在web.xml中配置如上图片的代码

     

    Web.xml的代码如下:

    <?xml version="1.0" encoding="UTF-8"?>

    <web-app version="2.5" 

    xmlns="http://java.sun.com/xml/ns/javaee" 

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

      <display-name></display-name>

      <welcome-file-list>

        <welcome-file>index.jsp</welcome-file>

      </welcome-file-list>

     <listener>

     <listener-class>com.iotek.jee.listener.WebContextListener</listener-class>

     </listener>

     <servlet>

     <servlet-name>Prossesing</servlet-name>

     <servlet-class>com.iotek.jee.servlet.ProssesingServlet</servlet-class>

     <multipart-config>

     <max-file-size>51200</max-file-size>

     <max-requst-size>52224</max-requst-size>

     <max-size-threshold>4096</max-size-threshold>

     </multipart-config>

     </servlet>

     <servlet-mapping>

     <servlet-name>Prossesing</servlet-name>

     <url-pattern>/prossesing</url-pattern>

     </servlet-mapping>

    </web-app>

     

    获取表单中某个元素的文件名 的方法

     


     

    forword方法:

    假设有两个servlet,分别是servlet1servlet2servlet1把请求对象和响应对象传递给servlet2,则servlet1中的响应输出流会无效

    include方法:

     

      

    状态码以3开头的,比如303,表示重定向

     

     

    理解 请求转发与重定向 各自的工作流程 与 区别

     

     

    WebContent下自定义的文件夹和文件 如:pagesindex.html可以被用户访问,其他的如META-INFWEB-INF目录则用户不能直接访问,WEB-INF只有servlet容器才可以访问

      

     

    URL重写   需要再看一遍

     

    过滤器的执行顺序   ->在学习一遍  过滤器-2

     

     

    作用域范围:Request < Session < Webcontext

    内存消耗:Request < Session < Webconte

    优先选择:1Request  2Session  3Webcontext

     


    jsp页面编译后会生成.java文件和.class文件   ,其中

    Jsp页面中的小脚本和表达式是放在service方法中,所以小脚本和表达式只能声明变量不能声明方法。由于service方法是被所有线程共享的,所以在<%!  %>中尽量只声明方法而不声明变量,因为如果声明了变量,那么这个变量就是全局的,当被多个线程同时访问时,会发生冲突

     

     

    Jsp出现的原因:是避免使用servlet输出页面,即避免在servlet中还要使用标签对


     

    使用指令去包含一个页面的时候,他们生成的是同一个Java源文件

      

    当页面的动作指令设置了参数,则被包含页面就可以使用request对象的getParameter方法获取该页面的参数

      

    要注意区别

     JSP脚本包括3中:声明、小脚本、表达式  在Java类中所在的位置

     

     

    注意:

    JSTL标准标签库   

    EL表达式可以调用作用域对象的属性,但不能调用作用域对象的方法

     

    获取用户通过表单或超链接传递的参数值 

     

    <function-signature>是方法签名的意思


    JSTL是页面上的小脚本转换成相应的标签库,有利于美工的工作



    Remove默认是把所有作用域(page \request\session \application )的指定名称的对象都移除掉

  3. 表达式访问页面里定义的变量是比较方便的;

  4. EL表达式访问定义在作用域对象里的变量是比较方便的。

     

     


     

    <c:redirect .../><c:import .../>标签不能同时出现,会报错

     

     

    在线书店 ->采用MVC的目录结构

    common存放我们写的一些工具

     

    首页

     

    图书信息

     

    登录、注册

     

    提交订单

     

    订单管理

     

    用户管理

     

    Tomcat页面配置数据源

     

    访问Tomcat的网址http://tomcat.apache.org/

     

0 0
原创粉丝点击