当前位置: 首页 > news >正文

用什么软件做网站模板网页设计作品

用什么软件做网站模板,网页设计作品,优化网站结构,客户关系管理的核心是一、前言 在实际开发中,有时候我们可能使用springboot注册web组件,实现某些功能,比如我们需要生成一些api来提供对外的服务,而对应的路径其实是不固定的,那么这种情况下,其实是可以通过这种方式来注册web组…

一、前言
在实际开发中,有时候我们可能使用springboot注册web组件,实现某些功能,比如我们需要生成一些api来提供对外的服务,而对应的路径其实是不固定的,那么这种情况下,其实是可以通过这种方式来注册web组件的。

二、如何实现?
1.使用SpringBoot注解加继承HttpServet类实现注册Servlet组件。

@WebServlet("/api")
public class APIServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {log.debug("servlet execute");String servletPath = request.getRequestURI();servletPath = servletPath.substring(apiContext.length() + 2);PrintWriter out = null;try {out = response.getWriter();ResponseDto responseDto = process(servletPath, request, response);out.append(JSON.toJSONString(responseDto));} catch (Exception e) {response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);out.append(JSON.toJSONString(ResponseDto.fail(e.toString())));log.error(e.toString(), e);} finally {if (out != null)out.close();}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {doGet(req, resp);}public ResponseDto process(String path, HttpServletRequest request, HttpServletResponse response) {System.out.println("请求处理");ResponseDto dto = new ResponseDto();return dto;}
}

2.通过继承HttpServet类加配置类来进行注册。

public class APIServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {log.debug("servlet execute");String servletPath = request.getRequestURI();servletPath = servletPath.substring(apiContext.length() + 2);PrintWriter out = null;try {out = response.getWriter();ResponseDto responseDto = process(servletPath, request, response);out.append(JSON.toJSONString(responseDto));} catch (Exception e) {response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);out.append(JSON.toJSONString(ResponseDto.fail(e.toString())));log.error(e.toString(), e);} finally {if (out != null)out.close();}}
}

新建一个配置类,将该Servlet加载到Spring容器中,配置类代码如下:

@Slf4j
@Configuration
public class ServletConfig {@Value("${dbapi.api.context}")String apiContext;@Autowiredprivate APIServlet apiServlet;@Beanpublic ServletRegistrationBean getServletRegistrationBean() {String format = String.format("/%s/*", apiContext);ServletRegistrationBean bean = new ServletRegistrationBean(apiServlet);bean.addUrlMappings(format);log.info("regist APIServlet servelet for {} urlMappings",format);return bean;}
}

两种注册方式都是可用的。

3.注册Filter组件实现过滤。

@Slf4j
@Component
@WebFilter("/api")
public class ApiIPFilter implements Filter {@Autowiredprivate IPService ipService;@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException {log.debug("IP filter execute");HttpServletRequest request = (HttpServletRequest) servletRequest;HttpServletResponse response = (HttpServletResponse) servletResponse;String originIp = IPUtil.getOriginIp(request);String method = request.getMethod();PrintWriter out = null;try {//js跨域的预检请求,不经过处理逻辑。开发模式下,前端启动,访问8521的页面进行请求测试会跨域if (method.equals("OPTIONS")) {response.setStatus(HttpServletResponse.SC_OK);return;}boolean checkIP = ipService.checkIP(originIp);if (!checkIP) {out = response.getWriter();response.setStatus(HttpServletResponse.SC_FORBIDDEN);out.append(JSON.toJSONString(ResponseDto.fail("Illegal ip (" + originIp + "), access forbidden")));} else {filterChain.doFilter(servletRequest, servletResponse);}} catch (Exception e) {response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);out.append(JSON.toJSONString(ResponseDto.fail(e.toString())));log.error(e.toString());} finally {if (out != null) {out.close();}}}

这里会对某些IP进行过滤。

最后启动类中的@ServletComponentScan注解扫描web组件。

@SpringBootApplication
//SpringBoot启动时扫描注册注解标注的Web组件
@ServletComponentScan
public class SpringbootDemoApplication {public static void main(String[] args) {SpringApplication.run(SpringbootDemoApplication.class, args);}
}
http://www.ds6.com.cn/news/76323.html

相关文章:

  • 营销网站制作网站seo设置是什么意思
  • 大连做企业网站哪家好百度广告联盟官网
  • 河北病例最新情况谷歌seo优化排名
  • 做电影网站 需要进那些群扬州百度seo公司
  • 上海网站建设与设计2023推广平台
  • 极品wordpress素材教程网站南宁市优化网站公司
  • 杭州 网站制作百度网络营销推广
  • 赣州信息港北京seo怎么优化
  • 微网站建设代理商西安seo王
  • 手机怎么自己做网站品牌营销服务
  • 北京做网站找哪家好链友之家
  • 网站建设投标邀请函外贸营销网站建站
  • 做区位分析的地图网站百度开户推广多少钱
  • 中国旅游网官网首页福建网络seo关键词优化教程
  • 厦门做企业网站太原做网站推广的公司
  • 广州制作网站平台网站关键词优化培训
  • 网站设计制作哪个公司的好经典营销案例100例
  • 广州建委网站免费创建网站的平台
  • wordpress中文论坛插件seo研究中心学员案例
  • 四川省城乡住房和城乡建设厅网站首页旺道seo软件技术
  • 目前网站在初级建设阶段 需要大量数据丰富怎么把广告发到各大平台
  • 常州网站设计如何在网上推广自己的产品
  • 湖寮做网站济南网站建设制作
  • 客户关系管理系统平台广州seo网站推广平台
  • wordpress全屏滚动网站营销策划机构
  • 广西住房和城乡建设厅网一键优化表格
  • 哈尔滨网站建设设计广告公司的业务范围
  • ps做网站首页效果特效域名注册 万网
  • 25转行做网站运营兰州网络推广公司哪家好
  • 有没有什么东西可以做网站安徽网站优化