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

网站网站建设费进什么科目郴州网站建设软件定制开发平台

网站网站建设费进什么科目,郴州网站建设软件定制开发平台,ftp不能上传wordpress,汉中建筑信息平台一、前言 在实际开发中,有时候我们可能使用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.yayakq.cn/news/594530/

相关文章:

  • 国外服装网站我做的网页怎么是危险网站
  • 企业做网站上海足球比赛直播平台app
  • 如何在手机上建立自己的网站济南官网seo推广
  • 内容管理网站建设方案沈阳网站优化公司
  • 临武网站建设怎么在国外网站赚钱
  • 石家庄做外贸的网站推广即时通讯型网站开发
  • 建立用模板建立网站wordpress 总变量
  • 网站建设存在风险嘉禾专业网站建设
  • 网页制作培训网站可以上传视频的网站建设
  • 浙江省嘉兴建设局官方网站做外贸网站需要多少钱
  • 宁波网站建设的公司wordpress太简单
  • 自己可以免费做网站吗房产网二手房信息
  • 海外网络推广招聘企业网站搜索优化外包
  • soho外贸网站建设青岛推广网站
  • 安徽池州建设厅网站wordpress 多用户商城主题
  • 广州网站优化系统怎样申请自己的网站
  • c2c商城网站开发建网页和网站的区别
  • 做商城网站需要在北京注册公司吗qq空间做宣传网站
  • 昨天正常的网站突然显示建设中以3d全景做的网站
  • 建设网站技术标准建设交易网站多少钱
  • 万网网站如何建设wordpress 详细介绍
  • 做外卖那些网站好seo网站免费优化软件
  • 宁夏固原住房和建设局网站wordpress并发
  • 做渔具网站有哪些网站是可以做免费推广的
  • 网站的后端用什么软件做怎样修改网站首页头部
  • 成功案例 网站企业微信营销管理软件
  • wordpress中上传整站网站建设导航
  • 那种自行提取卡密的网站怎么做那些彩票广告网站怎么做的
  • 协达网站建设微信公众平台入口
  • 佛山大良网站建设做网站的费用计入什么费用