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

聊城做网站的公司平台常见的网络推广方式有哪些

聊城做网站的公司平台,常见的网络推广方式有哪些,无锡新吴区住房建设交通局网站,wap音乐网站源码一、前言 在实际开发中,有时候我们可能使用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.hengruixuexiao.com/news/30088.html

相关文章:

  • PHP amp MySQL网站建设宝典seo优化技术是什么
  • 泰和县城乡建设局网站青岛谷歌优化
  • 哪个网站可以做头像的百度店铺怎么入驻
  • 做网站常用图标whois查询 站长工具
  • 做网站全过程新东方烹饪学校
  • 66郑州网站建设市场推广策略
  • 怎么推广自己的网站链接百度竞价排名规则及费用
  • 秦皇岛开发区建设局网站seo怎么优化关键词排名培训
  • 做彩票网站需要多少钱百度收录最新方法
  • 网站做推广有用吗免费入驻的电商平台
  • 网站标题权重吗seo服务的内容
  • win10系统可以做网站搭建seo是干什么的
  • 高明网站建设哪家好谷歌sem和seo区别
  • 网站需要去工信部做备案广告投放公司
  • 东莞公司网站制作博客seo教程
  • 做电影网站怎样赚钱吗seo软件
  • js导入wordpress深圳seo排名
  • 做图素材的网站有哪些企业网络搭建方案
  • 政府网站建设团队写软文用什么软件
  • 禅城区做网站策划手机百度高级搜索入口
  • 美妆网站开发论文谷歌推广外包
  • 大型网站开发 书籍优化大师百科
  • 哈尔滨网站开发联系薇国内永久免费域名注册
  • 如何制作个人网站主页推广项目
  • 淘宝网站设计价格sem是什么意思?
  • 企业做国外网站多少钱关键词采集软件
  • 电商平台哪个最好优化网站链接的方法
  • 怎么做淘宝代购网站南宁seo排名首页
  • 做视频网站需要什么资质百度app平台
  • 电商网站制作设计百度域名收录