当前位置 : 主页 > 编程语言 > java >

Jsp — 内置对象request、response 配置servlet

来源:互联网 收集:自由互联 发布时间:2021-06-25
1. 访问动态网页 使用URL实现页面访问: URL:统一资源定位符,即常说的网址; URL是唯一能识别Internet上具体的计算机、目录或文件夹的命名约定; 组成:第一部分:协议 第二部分:主

1. 访问动态网页

使用URL实现页面访问:

   URL:统一资源定位符,即常说的网址;

      URL是唯一能识别Internet上具体的计算机、目录或文件夹的命名约定;

组成:第一部分:协议

      第二部分:主机的IP地址,主机或端口号,是每台计算机的唯一标识;

      第三部分:项目资源的地址,如目录和文件夹名等。

 

2. Jsp文件中的注释

① 在jsp中写java脚本使用<% %>来括起来

② 在jsp中如果要输出一个表达式使用<%= %>

③ 在jsp中如果要定义一个方法使用<%! %>

④ 在jsp中如果只注释html标签则使用<!-- -->注释,如果要注释java脚本之类的所有代码,则使用jsp注释<%-- %>

 

3. Jsp内置对象 — request、response

request主要是用来在页面间传值的。

//获取请求数据之前,必须先写上,不管有没有中文,以防乱码
request.setCharacterEncoding("utf-8"); //获取用户名
String userName=request.getParameter("userName"); //获取密码
String passWord=request.getParameter("passWord"); //获取性别
String sex=request.getParameter("sex"); //获取爱好
String hobby[]=request.getParameterValues("hobby");

   3.1   java跳转页面有两种方式:

           重定向:发送一次新的请求,地址栏会改变。

           response.sendRedirect();

//在地址栏手动传值来获取值,但这种方法不适合用来传值,在不需要传值时使用。
response.sendRedirect("page/welcome.jsp?userName="+userName+"&passWord="+passWord);

           转发:不会发生新的请求,直接将原来的请求转发到最终页,地址栏不会改变。

           request.getRequestDispatcher();

//转发,用来传值。
request.getRequestDispatcher("welcome.jsp").forward(request, response);

   【转发和重定向的区别】

1)  重定向:不需要传值时使用。发生在客户端,地址栏会变化(因为重新发起了请求,原来的请求参数不会带过去)。

2)转发:需要传值时使用。发生在服务器端,地址栏不会变化,原来的请求参数会议并带过去。

 

4. 在web.xml里配置servlet

1)配置如下:

<!-- 配置欢迎启动页 -->
<welcome-file-list>
   <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<!-- 配置servlet -->
<servlet>
  <servlet-name>logincheck</servlet-name>  <!-- 这里的名字可以随便起,但最好是自己能看得懂的 -->
  <servlet-class>com.jredu.servlet.LoginCheck</servlet-class>  <!-- 是LoginCheck.java的包路径 -->
   <load-on-startup>1</load-on-startup><!-- 当服务器启动的时候立马初始化servlet,参数必须是一个数字1,数字代表优先级 -->
</servlet>


<servlet-mapping>
  <servlet-name>logincheck</servlet-name>  <!-- 和上面的名字一样的 -->
  <url-pattern>/loginCheck</url-pattern>  <!-- /随便起名字,但跳转的是上面的包路径 -->
</servlet-mapping>

2)servlet的生命周期   三个方法:

      init():servlet初始化

      service():servlet正在服务

      distory():servlet被销毁了

3)当需要传/取值时,如果需要传的不是单个值或者一个数组,当需要传一个列表时,通过request.setAtribute()来传值,再通过request.getAtribute()来取值。

网友评论