2022/2/20 Java开发之Java web编程 第六章 Servlet技术

目录

1.什么是Servlet

2.Servlet的工作原理

        2.1什么是Servlet容器

3. Servlet API 简介

        3.1 javax.servlet.Servlet接口

        3.2 javax.servlet.GenericServlet抽象类(协议无关版本)

        3.3 javax.servlet.http.HttpServlet抽象类(HTTP版本)

        3.4 javax.servlet.ServletRequest类(协议无关版本)

        3.5 javax.servlet.http.HttpServletRequest接口(HTTP版本)

        3.6 javax.servlet.ServletResponse接口(协议无关版本)

       3.7 javax.servlet.http.HttpServletResponse接口(HTTP版本)

        3.8 javax.servlet.ServletContext接口

         3.9 javax.servlet.http.HttpSession接口

4. Servlet生命周期简介

                4.1 加载和实例化----------->Servlet容器创建Servlet的实例

                4.2 初始化----------->该容器调用init()方法,对于每个Servlet实例,Servlet容器只调用一次其方init()方法

                4.3 服务----------->如果请求Servlet,则容器调用servlet()方法

                4.4 销毁----------->销毁实例之前调用destroy()方法

5.Servlet的使用

                5.1 创建Servlet

                5.2 配置Servlet

                5.3 调用Servlet

6.本章总结

1.什么是Servlet

Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。

Servlet是一个符合特定规范的Java程序,是一个基于Java技术的Web组件,主要用于生成动态的内容。

Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

2.Servlet的工作原理

  1. 客户端向服务器端发送请求
  2. Web服务器将请求发送给Servlet容器
  3. Servlet容器产生一个Servlet实例
  4. Servlet构建一个响应并将其传给Web服务器
  5. Web服务器将响应结果返回客户端

        2.1什么是Servlet容器

Servlet容器也被称为Servlet引擎,是Web服务器或应用程序服务器的一部分,用于在发送的请求和响应之上提供网络服务,管理和运行Servlet/JSP。

3. Servlet API 简介

        3.1 javax.servlet.Servlet接口

        servlet抽象集是javax.servlet.Servlet接口,它规定了必须由Servlet类实现由servlet引擎识别和管理的方法集。
        Servlet接口的基本目标是提供生命期方法init()、service()和destroy()方法。

                                                                                    Servlet接口的常用方法

方法名称功能描述
void init(ServletConfig config)由Servlet容器所调用,用于在处理客户请求前完成Servlet对象的初始化工作
void service(ServletRequest request, ServletResponse response)Servlet容器所调用,用于处理客户端请求
void destory()由Servlet容器所调用,用于释放Servlet对象所使用的资源
ServletConfig getServletConfig()返回传递到servlet的init()方法的ServletConfig对象 ,该对象包含此Servlet的初始化和启动参数
String getServletInfo() 返回描述servlet的一个字符串 

        3.2 javax.servlet.GenericServlet抽象类(协议无关版本)

GenericServlet是一种与协议无关的servlet,是一种跟本不对请求提供服务的servlet,而是简单地从init()方法启动后台线程并在destory()中杀死。它可以用于模拟操作系统的端口监控进程。
servlet API提供了Servlet接口的直接实现,称为GenericServlet。此类提供除了service()方法外所有接口中方法的缺省实现。这意味着通过简单地扩展GenericServlte可以编写一个基本的servlet。
除了Servlet接口外,GenericServlet也实现了ServletConfig接口,处理初始化参数和servlet上下文,提供对授权传递到init()方法中的ServletConfig对象的方法。

                                                                                    GenericServlet抽象类的常用方法

方法名称功能描述
public void init(ServletConfig config)是对Servlet接口中init(ServletConfig config)方法的实现,将ServletConfigConfig实例保存以备用
public void init()用于在子类重写,以实现用户制定的初始化工作
public String getInitParameter(String name)通过调用ServletConfig接口的getInitParameter(String name)方法获取设置的初始化数值,是为简化从ServletConfig对象中获取初始化参数而定义的方法

public ServletContext

getServletContext()

通过调用ServletConfig接口的getServletContext()方法返回getServletContext对象,是为简化从ServletConfig对象中获取getServletContext对象而定义的方法

        3.3 javax.servlet.http.HttpServlet抽象类(HTTP版本)

虽然servlet API允许扩展到其它协议,但最终所有的servlet均在Web环境下实施操作,只有几种servlet直接扩展了GenericServlet。对servlet更一般的是扩展其HTTP子类HttpServlet。
HttpServlet 类通过调用指定到HTTP请求方法的方法实现service(),亦即对DELETE、HEAD、GET、OPTIONS、POST、PUT和 TRACE,分别调用doDelete()、doHead()、doGet()、doOptions()、doPost()、doPut()和 doTrace()方法,将请求和响应对象置入其HTTP指定子类。

                                                                                    HttpServlet抽象类的常用方法 

方法名称功能描述
public void service(Request request,Response response)对GenericServlet类中service()方法的实现,将请求分发给protected类型service()方法
public void service(HttpServletRequest request,HttpServletResponse response)针对HTTP的service()方法,接收标准的HTTP请求,并将它们分发给HttpServlet类中定义的一系列doXxx()方法
protected void doXxx(HttpServletRequest req,HttpServletResponse resp)针对HTTP的不同请求方法而定义的一系列处理方法,如doGet(),doPost()等

        3.4 javax.servlet.ServletRequest类(协议无关版本)


ServletRequest接口封装了客户端请求的细节。它与协议无关,并有一个指定HTTP的子接口。
ServletRequest主要处理:

        1.找到客户端的主机名和IP地址
        2.检索请求参数
        3.取得和设置属性
        4.取得输入和输出流


                                                                                  ServletRequest类中的方法       

方法名称功能描述
Object getAttribute(String name) 返回具有指定名字的请求属性,如果不存在则返回null。属性可由servlet引擎设置或使用setAttribute()显式加入。

Enumeration

getAttributeName()

返回请求中所有属性名的枚举。如果不存在属性,则返回一个空的枚举。
String getCharacteEncoding()返回请求所用的字符编码。
Int getContentLength() 指定输入流的长度,如果未知则返回-1。
ServletInputStream getInputStream()throws IOException返回与请求相关的(二进制)输入流。可以调用getInputStream()或getReader()方法之一。
String getParameter(String name)返回指定输入参数,如果不存在,返回null。  
Enumeration getParameterName() 返回请求中所有参数名的一个可能为空的枚举。
String[] getParameterValues(String name)返回指定输入参数名的取值数组,如果取值不存在则返回null。它在参数具有多个取值的情况下十分有用。    
String get Protocol()返回请求使用协议的名称和版本。
String getScheme() 返回请求URI的子串,但不包含第一个冒号前的内容。 
String getServerName()返回处理请求的服务器的主机名。
String getServerPort() 返回接收主机正在侦听的端口号。
BufferedReader getReader()throws IOException返回与请求相关输入数据的一个字符解读器。此方法与getInputStream()只可分别调用,不能同时使用。
String getRemoteAddr()返回客户端主机的数字型IP地址。
String getRemoteHost()如果知道,返回客户端主机名。
void setAttribute(String name,Object obj) 以指定名称保存请求中指定对象的引用。
void removeAttribute(String name) 从请求中删除指定属性
Locale getLocale() 如果已知,返回客户端的第一现场或者为null。
Enumeration getLocales()如果已知,返回客户端的第一现场的一个枚举,否则返回服务器第一现场。  
boolean isSecure()如果请求使用了如HTTPS安全隧道,返回true
RequestDispatcher getRequestDispatcher(String name) 返回指定源名称的RequsetDispatcher对象。


        3.5 javax.servlet.http.HttpServletRequest接口(HTTP版本)


HttpServletRequest类主要处理:
        1.读取和写入HTTP头标
        2.取得和设置cookies
        3.取得路径信息
        4.标识HTTP会话


                                                                                       HttpServletRequest接口中的方法       

方法名称功能描述
String getAuthType() 如果servlet由一个鉴定方案所保护,如HTTP基本鉴定,则返回方案名称。
String getContextPath()返回指定servlet上下文(web应用)的URL的前缀。
Cookie[] getCookies()返回与请求相关cookie的一个数组。
Long getDateHeader(String name)将输出转换成适合构建Date对象的long类型取值的getHeader()的简化版。
String getHeader(String name)返回指定的HTTP头标指。如果其由请求给出,则名字应为大小写不敏感。
Enumeration getHeaderNames() 返回请求给出的所有HTTP头标名称的权举值。
Enumeration getHeaders(String name) 返回请求给出的指定类型的所有HTTP头标的名称的枚举值,它对具有多取值的头标非常有用。
int getIntHeader(String name)将输出转换为int取值的getHeader()的简化版。
String getMethod()返回HTTP请求方法(例如GET、POST等等)
String getPathInfo()返回在URL中指定的任意附加路径信息。
String getPathTranslated()返回在URL中指定的任意附加路径信息,被子转换成一个实际路径。 
String getQueryString()返回查询字符串,即URL中?后面的部份。
String getRemoteUser()如果用户通过鉴定,返回远程用户名,否则为null。 
String getRequestedSessionId() 返回客户端的会话ID 
String getRequestURI() 返回URL中一部分,从“/”开始,包括上下文,但不包括任意查询字符串。
String getServletPath() 返回请求URI上下文后的子串
HttpSession getSession()调用getSession(true)的简化版。
HttpSession getSession(boolean create)返回当前HTTP会话,如果不存在,则创建一个新的会话,create参数为true。
Principal getPrincipal()如果用户通过鉴定,返回代表当前用户的java.security.Principal对象,否则为null。
boolean isRequestedSessionIdFromCookie()如果请求的会话ID由一个Cookie对象提供,则返回true,否则为false。
boolean isRequestedSessionIdFromURL()如果请求的会话ID在请求URL中解码,返回true,否则为false
boolean isRequestedSessionIdValid()如果客户端返回的会话ID仍然有效,则返回true。
Boolean isUserInRole(String role) 如果当前已通过鉴定用户与指定角色相关,则返回true,如果不是或用户未通过鉴定,则返回false。


        3.6 javax.servlet.ServletResponse接口(协议无关版本)


ServletResponse对象将一个servlet生成的结果传到发出请求的客户端。ServletResponse操作主要是作为输出流及其内容类型和长度的包容器,它由servlet引擎创建.

                                                                                          ServletResponse接口中的方法       

方法名称功能描述
void flushBuffer()throws IOException发送缓存到客户端的输出内容。因为HTTP需要头标在内容前被发送,调用此方法发送状态行和响应头标,以确认请求。
int getBufferSize() 返回响应使用的缓存大小。如果缓存无效则返加0。
String getCharacterEncoding() 返回响应使用字符解码的名字。除非显式设置,否则为ISO-8859-1 
Locale getLocale()返回响应使用的现场。除非用setLocale()修改,否则缺省为服务器现场。
OutputStream getOutputStream()throws IOException返回用于将返回的二进制输出写入客户端的流,此方法和getWrite()方法二者只能调用其一。
Writer getWriter()throws IOException返回用于将返回的文本输出写入客户端的一个字符写入器,此方法和getOutputStream()二者只能调用其一。
boolean isCommitted() 如果状态和响应头标已经被发回客户端,则返回true,在响应被确认后发送响应头标毫无作用。
void reset() 清除输出缓存及任何响应头标。如果响应已得到确认,则引发事件IllegalStateException。
void setBufferSize(int nBytes)设置响应的最小缓存大小。实际缓存大小可以更大,可以通过调用getBufferSize()得到。如果输出已被写入,则产生IllegalStateException。
void setContentLength(int length) 设置内容体的长度。
void setContentType(String type)设置内容类型。在HTTP servlet中即设置Content-Type头标。 
void setLocale(Locale locale) 设置响应使用的现场。在HTTP servlet中,将对Content-Type头标取值产生影响。 

    
   3.7 javax.servlet.http.HttpServletResponse接口(HTTP版本)


HttpServletResponse加入表示状态码、状态信息和响应头标的方法,它还负责对URL中写入一Web页面的HTTP会话ID进行解码。


                                                                                     HttpServletResponse接口中的方法       

方法名称功能描述
void addCookie(Cookie cookie)将一个Set-Cookie头标加入到响应。
void addDateHeader(String name,long date)使用指定日期值加入带有指定名字(或代换所有此名字头标)的响应头标的方法。
void setHeader(String name,String value)设置具有指定名字和取值的一个响应头标。
void addIntHeader(String name,int value)使用指定整型值加入带有指定名字的响应头标(或代换此名字的所有头标)。
boolean containsHeader(String name) 如果响应已包含此名字的头标,则返回true。
String encodeRedirectURL(String url) 如果客户端不知道接受cookid,则向URL加入会话ID。第一种形式只对在sendRedirect()中使用的URL进行调用。其他被编码的 URLs应被传递到encodeURL() 
String encodeURL(String url)           
void sendError(int status)
设置响应状态码为指定值(可选的状态信息)。HttpServleetResponse定义了一个完整的整数常量集合表示有效状态值。   
void sendError(int status,String msg)           
void setStatus(int status) 
设置响应状态码为指定指。只应用于不产生错误的响应,而错误响应使用sendError()。


        3.8 javax.servlet.ServletContext接口


一个servlet上下文是servlet引擎提供用来服务于Web应用的接口。Servlet上下文具有名字(它属于Web应用的名字)唯一映射到文件系统的一个目录。
一个servlet可以通过ServletConfig对象的getServletContext()方法得到servlet上下文的引用,如果servlet直接或间接调用子类GenericServlet,则可以使用getServletContext()方法。


Web应用中servlet可以使用servlet上下文得到:
1.在调用期间保存和检索属性的功能,并与其他servlet共享这些属性。
2.读取Web应用中文件内容和其他静态资源的功能。
3.互相发送请求的方式。
4.记录错误和信息化消息的功能。


                                                                                          ServletContext接口中的方法      

方法名称方法描述
Object getAttribute(String name)返回servlet上下文中具有指定名字的对象,或使用已指定名捆绑一个对象。从Web应用的标准观点看,这样的对象是全局对象,因为它们可以被同一 servlet在另一时刻访问。或上下文中任意其他servlet访问。
void setAttribute(String name,Object obj) 设置servlet上下文中具有指定名字的对象。
Enumeration getAttributeNames() 返回保存在servlet上下文中所有属性名字的枚举。 
ServletContext getContext(String uripath) 返回映射到另一URL的servlet上下文。在同一服务器中URL必须是以“/”开头的绝对路径。
String getInitParameter(String name) 返回指定上下文范围的初始化参数值。此方法与ServletConfig方法名称不一样,后者只应用于已编码的指定servlet。此方法应用于上下文中所有的参数。
Enumeration getInitParameterNames() 返回(可能为空)指定上下文范围的初始化参数值名字的枚举值。 

int getMajorVersion() 

int getMinorVersion() 

返回此上下文中支持servlet API级别的最大和最小版本号。
String getMimeType(String fileName) 返回指定文件名的MIME类型。典型情况是基于文件扩展名,而不是文件本身的内容(它可以不必存在)。如果MIME类型未知,可以返回null。

RequestDispatcher getNameDispatcher(String name)

RequestDispatcher getNameDispatcher(String path) 

回具有指定名字或路径的servlet或JSP的RequestDispatcher。如果不能创建RequestDispatch,返回null。如果指定路径,必须心“/”开头,并且是相对于servlet上下文的顶部。
String getRealPath(String path) 给定一个URI,返回文件系统中URI对应的绝对路径。如果不能进行映射,返回null。

URL getResource(String path) 

InputStream getResourceAsStream(String path) 

返回相对于servlet上下文或读取URL的输入流的指定绝对路径相对应的URL,如果资源不存在则返回null。
String getServerInfo()    返回servlet引擎的名称和版本号。
void log(String message)
void log(String message,Throwable t)
将一个消息写入servlet注册,如果给出Throwable参数,则包含栈轨迹。
void removeAttribute(String name) 从servlet上下文中删除指定属性。

 
        3.9 javax.servlet.http.HttpSession接口


HttpSession类似于哈希表的接口,它提供了setAttribute ()和getAttribute()方法存储和检索对象。HttpSession提供了一个会话ID关键字,一个参与会话行为的客户端在同一会话的请求中存储和返回它。servlet引擎查找适当的会话对象,并使之对当前请求可用。


                                                                                  HttpSession接口中的方法       

方法名称方法描述

Object getAttribute(String name)

void setAttribute(String name,Object value)  

void removeAttribute(String name) 

将会话中一个对象保存为指定名字,获取,返回或删除前面保存的此名称对象。
Enumeration getAttributeName()返回捆绑到当前会话的所有属性名的枚举值。 

long getCreationTime()

long getLastAccessedTime()

返回表示会话创建和最后访问日期和时间的一个长整型,该整型形式为java.util.Date()构造器中使用的形式。
String getId()  返回会话ID,servlet引擎设置的一个唯一关键字。  

ing getMaxInactiveInterval()

void setMasInactiveInterval(int seconds) 

如果没有与客户端发生交互,设置和返回会话存活的最大秒数。
void invalidate() 使得会话被终止,释放其中任意对象。
boolean isNew() 如果客户端仍未加入到会话,返回true。当会话首次被创建,会话ID被传入客户端,但客户端仍未进行包含此会话ID的第二次请示时,返回true。

4. Servlet生命周期简介

                4.1 加载和实例化----------->Servlet容器创建Servlet的实例

                        当客户端向某个Servlet发送一个请求时(也可以配置为当Servlet容器启动时),Servlet容器会查找内存中是否存在该Servlet的实例,如果不存在,就创建一个实例;如果存在,就直接从内存中取出该实例响应请求。

                4.2 初始化----------->该容器调用init()方法,对于每个Servlet实例,Servlet容器只调用一次其方init()方法

                        Servlet容器在完成Servlet实例化后,会调用该Servlet的init()方法进行初始化,初始化的目的是让Servlet在处理客户端请求前完成一些准备工作,如设置必要的参数丶建立JDBC连接,或是建立对其他资源的引用等。完成初始化后,Servlet就处于就绪状态,可以响应请求。

                4.3 服务----------->如果请求Servlet,则容器调用servlet()方法

                        Servlet容器会调用Servlet的servlet()方法处理客户端的请求,HttpServlet的servlet()方法则会根据不同的请求方法(GET丶POST等)将请求分发到doGet()丶doPost()等方法进行处理。Servlet实例通过(Http)ServletRequest对象获得客户端的请求数据,通过调用(Http)ServletResponse对象的方法设置响应信息。

                4.4 销毁----------->销毁实例之前调用destroy()方法

                        Servlet容器既负责创建Servlet实例,又负责销毁Servlet实例。Servlet容器判断一个Servlet实例应当被释放时(如容器关闭或需要回收资源时),就会调用其destroy()方法,该方法负责释放Servlet实例所使用的资源,而非直接回收Servlet实例。

5.Servlet的使用

                5.1 创建Servlet

                        继承Httpservlet类,重写doGet()方法和doPost()方法。注意要继承此类需要先导入Tomcat架包或servlet-api架包

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class Do_servlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doGet(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}

                5.2 配置Servlet

                        通过注解配置Servlet

                        语法:@WebServlet(urlPatterns={"/映射地址"},asyncSupporten=true|false,loadOnStartup=-1,name="Servlet名称",displayName="显示名称",initParams={@WebInitParam(name="键",value="值")})

                                                                                         @WebServlet常用属性

属性类型是否必须说明
nameString指定Servlet名称。如果没有显示指定,则该属性取值为类的全限定名
urlPatternsString[]指定一组Servlet的URL匹配模式
valueString[]该属性等价于urlPatterns属性,两种不能同时使用。如果同时使用,则忽略value属性的取值
asyncSupportenboolean声明Servlet是否支持异步操作模式
loadOnStartupint指定Servlet的加载顺序
displayNameString指定Servlet的显示名称
initParamsWebInitParam[]指定一组Servlet的初始化参数
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/Do_servlet")
public class Do_servlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         req.setCharacterEncoding("utf-8");
         resp.setCharacterEncoding("utf-8");
         resp.setContentType("text/html;charset=utf-8");
    }
}

                5.3 调用Servlet

 $(function () {
      /*加载时调用*/
      $.getJSON("Do_servlet","",function (data) {
         alert(data)
       
      })
    })
    <form action="Do_servlet" method="post">
          <div class="inputBox">
            <input type="text" placeholder="姓名" name="uname" required="required">

          </div>
          <div class="inputBox">
            <input type="password" placeholder="密码" name="upwd" required="required">

          </div>
          <div class="inputBox">
            <input type="submit" value="登录">

          </div>
          <p class="forget">忘记密码?<a href="#">
            点击这里
          </a></p>
          <p class="forget">没有账户?<a href="#">
            注册
          </a></p>
        </form>

6.本章总结

  1. Servlet是一个Java程序,它运行在服务器端,用于接收和处理用户请求,并做出响应。
  2. Servlet API包含两个包,javax.servlet中包含的类和接口是通用的不依赖协议的Servlet API,javax.servlet.http中的类和接口是用于支持HTTP的Servlet API。
  3. Servlet的生命周期包括四个阶段:加载和实例化丶初始化丶服务丶销毁。
  4. 通过配置Servlet,容器可以根据配置的URL映射查找Servlet,并调用该Servlet处理用户的请求。
  5. 配置Servlet的方法有配置web.xml或使用@WebServlet注解两种方式。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1. 什么是Servlet?它的生命周期是怎么样的? ServletJava Web中的组件,它负责处理客户端请求并生成响应。Servlet的生命周期包括:加载、实例化、初始化、服务、销毁。当Servlet容器启动时,它会加载所有的Servlet类,然后根据web.xml配置文件中的<servlet>标签实例化Servlet对象,调用init()方法进行初始化。当客户端发起请求时,容器会调用Servlet的service()方法处理请求。当Servlet容器关闭时,会调用Servlet的destroy()方法销毁对象。 2. 什么是JSP?它和Servlet有什么区别? JSP(JavaServer Pages)是一种动态网页技术,它允许我们在HTML页面中嵌入Java代码,以便动态生成HTML内容。与Servlet相比,JSP更容易编写和维护,因为它能够将业务逻辑和展示逻辑分开。Servlet通常用于处理客户端请求和生成响应,而JSP通常用于生成HTML页面。 3. 什么是JDBC?如何使用JDBC连接数据库? JDBC(Java Database Connectivity)是Java连接数据库的标准API,它提供了一组接口和类,用于访问和操作数据库。使用JDBC连接数据库需要以下步骤: 1. 加载数据库驱动程序 2. 创建连接对象 3. 创建Statement对象或PreparedStatement对象 4. 执行SQL语句 5. 处理结果集 6. 关闭Statement对象和连接对象 4. 什么是ORM?常用的ORM框架有哪些? ORM(Object-Relational Mapping)是一种将对象和关系数据库映射的技术,它能够将Java对象和数据库表之间建立映射关系,实现数据的持久化。常用的ORM框架有Hibernate、MyBatis、Spring Data JPA等。 5. 什么是Spring?它的核心模块有哪些? Spring是一个轻量级的Java开发框架,它提供了一系列的模块,用于简化企业级应用程序的开发。Spring的核心模块包括: 1. IOC(Inversion of Control)容器:控制反转容器,用于管理Java对象的生命周期和依赖关系。 2. AOP(Aspect Oriented Programming)框架:面向切面编程框架,用于实现横切关注点的模块化处理。 3. JDBC和ORM模块:用于实现Java与数据库之间的数据访问。 4. MVC框架:用于实现Web应用程序的模型-视图-控制器架构。 5. Spring Security:用于实现安全认证和授权功能。 6. Spring Boot:用于快速构建Spring应用程序的脚手架工具。 6. 什么是RESTful API?如何设计RESTful API? RESTful API是一种基于HTTP协议的Web服务架构,它通过URL来表示资源,使用HTTP方法来定义操作。RESTful API需要满足以下设计原则: 1. 使用HTTP动词来定义操作,如GET、POST、PUT、DELETE等。 2. 使用URI来表示资源,URI应该是有意义的,且应该能够唯一标识资源。 3. 使用HTTP状态码来表示操作结果,如200表示成功,404表示资源不存在等。 4. 使用JSON或XML等格式来传输数据。 7. 什么是Spring Boot?它的优点是什么? Spring Boot是一个快速构建Spring应用程序的脚手架工具,它能够自动配置Spring和第三方库,简化了Spring应用程序的构建和部署。Spring Boot的优点包括: 1. 简化配置:Spring Boot自动配置了很多常用的配置,如数据源、Web服务器、日志等,开发者不需要手动配置。 2. 快速开发:Spring Boot提供了很多快速开发的特性,如自动装配、命令行工具、热部署等,能够提高开发效率。 3. 易于部署:Spring Boot能够将应用程序打包成单个可执行的JAR文件,并且自带内嵌的Web服务器,能够方便地部署和运行。 4. 生态丰富:Spring Boot与Spring生态系统紧密集成,能够方便地使用Spring的各种模块和第三方库。 5. 易于测试:Spring Boot提供了很多测试工具和框架,能够方便地进行单元测试、集成测试等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Abcdzzr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值