1.JavaEE 无法查看自己工程下login.html 文件
解决方法: login.html 文件必须建在 WebContent目录下,不应该建立在WEB-INF下,这样导致 当 login.html 文件使用 run server时无法加载
WEB-INF/lib 只存放 web.xml 文件,其他.jsp.html放在 WebContent目录下
2. Java Web工程中 设置默认的启动页面通过web.xml 文件进行配置
在 WebContent/WEB-INF/web.xml 用来配置与Servlet与项目相关的信息
3. Get Vs Post 请求:
1.浏览器地址栏中输入某个URL地址或者点击网页超链接,此时HTTP消息请求方式是Get
2. 网页中<from>表单元素method="GET'
3.传输数据量1KB之下,
4.如何从HTMLPost数据进行真确的接受
<from action="demo" method="get">
HTML中from 中 action属性将表单提交到名为 demo的页面上
对于 web.xml 配置: <url-pattern>/login<url-pattern> <url-parrten> 配置名称必须要与 .jsp 中From标签中action属性保持 一致(不能用/)
其中代码:如下:在loginServlet.java过程中就可以写出其中东西
最好在浏览器上进行输入,不知道为什么在javaEE自己上输入没有反应
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xmlns="http://java.sun.com/xml/ns/javaee" 4 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 5 id="WebApp_ID" version="3.0"> 6 7 <servlet> 8 <!-- 信息配置 --> 9 <!-- 将 LoginServlet.java 命名成LoginServlet 10 (当然命名成其他,保证mapping中名称一样) --> 11 <servlet-name>login</servlet-name> 12 <servlet-class>com.tets.LoginServlet</servlet-class> 13 <load-on-startup>-1</load-on-startup> 14 </servlet> 15 16 17 <servlet-mapping> 18 <servlet-name>login</servlet-name> 19 <!-- 下面写上html action属性提交的是哪个页面 --> 20 <url-pattern>/login1</url-pattern> 21 22 </servlet-mapping> 23 24 25 26 </web-app>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <!-- 表单提交 移交方式get 提交到 LoginServlet --> <form action="login1" method="post"> user:<input type="text" name="user"/><br> password:<input type="password" name="password"/><br> <input type="submit" value="submit"/> <input type="reset" value="reset"/> </form> </body> </html>
对于 LoginServlet.java:
1 package com.tets; 2 3 import java.io.IOException; 4 5 import javax.servlet.Servlet; 6 import javax.servlet.ServletConfig; 7 import javax.servlet.ServletException; 8 import javax.servlet.ServletRequest; 9 import javax.servlet.ServletResponse; 10 11 /**如何提取方法中获取请求信息*/ 12 public class LoginServlet implements Servlet{ 13 14 @Override 15 public void destroy() { 16 // TODO Auto-generated method stub 17 18 } 19 20 @Override 21 public ServletConfig getServletConfig() { 22 // TODO Auto-generated method stub 23 System.out.println("config 方法"); 24 return null; 25 } 26 27 @Override 28 public String getServletInfo() { 29 // TODO Auto-generated method stub 30 System.out.println("getServletInfo 方法"); 31 return null; 32 } 33 34 @Override 35 public void init(ServletConfig arg0) throws ServletException { 36 // TODO Auto-generated method stub 37 //System.out.println("Init 方法"); 38 } 39 40 @Override 41 public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { 42 // TODO Auto-generated method stub 43 System.out.println("html 请求来了"); 44 45 System.out.print(request); 46 String user=request.getParameter("user"); 47 String password=request.getParameter("password"); 48 49 System.out.println(user+", "+password); 50 } 51 52 }
5.HttpServletRequest:是属于Servlet的子接口,其中有大量Http方法
URI:去掉本站点之后信息,相当于对站点中信息的定位
URL:站点+URI
HttpQueryString()方法可以得到get方法提交的数据
6. GenericServlet:
1.Servlet 和 ServletConfig接口的实现,但是抽象类,其中service方法是抽象方法
2.GenericServlet 中声明一个ServConfigl类型的成员变量,在init(ServletConfig) 直接对其初始化
3.自己重载init()无参方法保留原先init(ServletConfig)有参方法,这个无参方法用于给子类进行覆盖重写,不见了重写init的有参方法
7.重定向 Vs 转发
重定向:服务器收到用户的请求之后,经过其处理修改用户的请求URL信息,在返回给用户,这样用户在一次使用这个请求时候被动的使用新请求,其不会跳转到原来的URL上
目的:防止用户提交完数据之后 点击浏览器刷新再一次提交数据;
转发:服务器接受到数据 不进行修改在转发给其他的组件最后在回送用户
8.Seesion会话作用:
Seesion主要是对会话的跟踪,http协议是无状态的协议,客户每一次读取web页面时候,服务器都会打开一个新的会话;
Https 是SSL+Http的加密性质传输(不同于HTTP 与TCp/IP的加密身份认证),两者传输方法和接口不一样http:80,https:443 --有一个CA认证系统
9. @WebServlet()标注配置问题
1).在多个请求去往同一个Servlet 时候,同时利用反射机制 创建方法,当XXX.do 的URL请求去往同一个Servlet,使用@WebServlet进行标注配置 使用
getServletPath() ,提取出想实现的方法
结果显示 左侧浏览器:
10.如果如下出现了java.lang.ClassNotFoundException: org.apache.commons.dbutils.ResultSetHandler
解决的方案 是Tomcat的lib下没有相对应的的,jar 文件,因此将dbUtils.jar包放到lib下面
11. 标签问题,有时候出现的是版本问题 :
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%> 不用 <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
12.超链接的方式 get请求的方式