梦回JSP和Servlet(上)

梦回JSP和Servlet(上)本文已参与「新人创作礼」活动,一起开启掘金创作之路。 内置对象 out JspWriter println() print() flush() 输出缓冲区数据, close() 关闭输出流,并且强制终

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

内置对象


  1. out JspWriter

    1. println() print()
    2. flush() 输出缓冲区数据, close() 关闭输出流,并且强制终止剩余部分向浏览器输出,
    3. clear() 清楚缓冲区的数据,不写到客户端, clearBuffer() 清除缓冲区里的数据,写到客户端
    4. getRemaining() 获取缓冲区没有被占用的空间的大小, getBufferSize() 获取缓冲区大小
  2. request HttpServletRequest

    1. url 传值用getParameter() form 表单信息getParameterValues()

    2. 客户端request构造的信息

      1. getMethod
      2. getRequestURI
      3. getProtocol
      4. getServletPath
      5. getQueryString
      6. getServerName
      7. getServerPort
      8. getRemoteAddr
    3. 请求的转发: request.getRequestDispatcher(url).forward(res,req)

    4. 数据传递:setAttribute(name,value) getAttribute(name) removeAttribute(name)

  3. response HttpServletResponse

    1. 重定向 → sendRedirect (重定向完成后,request属性全部失效,进入一个新的request作用域)
    2. setHeader来设置HTTP的头部
  4. session HttpSession

    1. getAttribute,setAttribute,removeAttribute,removeAttributeinvalidate
  5. appliation ServletContext

  6. page this

  7. pagecontext PageContext

  8. config ServletConfig

  9. exception Exception

forward和redirect区别→ forward地址栏不会变,数据共享,资源转发,效率高,只进行一次(redirect进行了两次)

JSP 脚本程序语法


jsp 脚本 <% 代码片段%>

jsp 声明 <%!变量声明%>

jsp 表达式 <%=表达式%> 表达式中一定是字符串类型

jsp 程序段中的变量只能先声明后使用,jsp声明中定义的变量是网页级别的

jsp 三种指令 page, include,taglib

page :

import, errorpage (指定错误调整), iserrorpage(指定本页为错误页)

include :

file (引入文件)

<jsp:include page=””/>

  • jsp:include: 在页面被请求的时候引入一个文件。
  • jsp:useBean: 寻找或者实例化一个JavaBean。
  • jsp:setProperty: 设置JavaBean的属性。
  • jsp:getProperty: 输出某个JavaBean的属性。
  • jsp:forward: 把请求转到一个新的页面。
  • jsp:plugin: 根据浏览器类型为Java插件生成OBJECT或EMBED标记。
  • jsp:element: 定义动态XML元素
  • jsp:attribute: 设置动态定义的XML元素属性。
  • jsp:body: 设置动态定义的XML元素内容。
  • jsp:text: 在JSP页面和文档中使用写入文本的模板

image_dF59aGr9X6.png

Cookie

Cookie 由服务端生成,发给客户端的

response.addCookie(new Cookie(name,value)) setMaxAge() 设置cookie的生命周期,0代表立即失效,正数代表秒数,负数-1代表离开浏览器失效

request.getCookie(name) or request.getCookies();

res = new Cookie(name,value); res.getName(), res.getValue()

image_1xtwWCrGEc.png

数据库


注意:

PreparedStatement pre = con.preparestatement(sql)

前面有d,后面没有d

包名是 com.mysql.cj.jdbc.Driver

Class.forName("com.jdbc.mysql.Driver") or Class.forName("com.jdbc.cj.mysql.Driver")

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/demo","root","root")

Statement st = con.createStatement()

PreparedStatement pre = con.prepareStatement(sql)

pre.setString(1,1)

pre.executeUpdate()

int i = st.executeUpdate(sql)

ResultSet res = st.executeQuery(sql)

st.close()

con.close()

乱码问题

request.setCharacterEncoding(“UTF-8”)

response.setContentType(“text/html,charset=UTF-8”)

ResultSet 第一次指向第一条数据之前的那一条

事务

con.setAutoCommit(false)

con.commit()

con.rollback()

con.close()

Servlet

 import javax.servlet.http.HttpServlet
 public class Lish extends HttpServlet {
   protected void doGet(HttpServletRequest req,      HttpServletRsponse resp)throws ServeletException, IOException{
     
   }
 }
 # 配置servlet
 <servlet>
     <servlet-name>Lis</servlet-name>
     <servlet-class>controller.Lish</servlet-class>
 </servlet>
 <servlet-mapping>
     <servlet-name>Lis</servlet-name>
     <url-pattern>/lis</url-pattern>
 </servlet-mapping>
 # 配置欢迎页
 <welcome-file-list>
     <welcome-file>index.jsp</welcome-file> 有先后顺序
 </welcome-file-list>
 # 配置初始化传参 通过 this.getInitParameter() 拿到东西
 <init-param>
   <param-name>driverClassName</param-name>
   <param-value>sun.jdbc.odbc.JdbcOdbcDriver</param-value>
 </init-param> 

servlet生命周期:

init → service→destory

request和servletcontext 使用getDispatcher(url).forward的区别:

request使用的是相对路径

servletcontext使用的是绝对路径

 全局
 <context-param>
     <param-name>参数名</param-name>
     <param-value>参数值</param-value>
 </context-param>
 局部
 <servlet>
     <servlet-name></servlet-name>
     <servlet-class></servlet-class>
     <init-param>
              <param-name>参数名</param-name>
              <param-value>参数值</param-value>
      </init-param>
 </servlet>

Filter

接口需要实现的三个函数

 public void init(FilterConfig con){
 }
 public void doFilter(ServletRequest res,ServletResponse resp,FilterChain chain){
 }
 public void destory(){
 }

filter 2.0 配置

 <filter>
     <filter-name>login</filter-name>
     <filter-class>Filter.login</filter-class>
 </filter>
 <filter-mapping>
     <filter-name>login</filter-name>
     <url-pattern>/login/*</url-pattern>
 </filter-mapping>

今天的文章梦回JSP和Servlet(上)分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/22359.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注