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

怎样建立销售网站怎样使用网站模板

怎样建立销售网站,怎样使用网站模板,建设工程查询网站,深圳专业专业网站建设文章目录 一#xff0c;序二#xff0c;样例代码1#xff0c;代码结构2#xff0c;完整代码备份 三#xff0c;准备工作1. pom.xml 引入组件2. application.yml 指定jsp配置 四#xff0c;war方式运行1. 修改pom.xml文件2. mvn执行打包 五#xff0c;jar方式运行1. 修改… 文章目录 一序二样例代码1代码结构2完整代码备份 三准备工作1. pom.xml 引入组件2. application.yml 指定jsp配置 四war方式运行1. 修改pom.xml文件2. mvn执行打包 五jar方式运行1. 修改pom-jsp-jar.xml文件2. 修改 spring-boot-maven-plugin添加版本号3. 添加资源文件配置Jar运行必须4. mvn执行打包 六war、jar方式运行配置文件区别 一序 Spring Boot 官方不推荐使用JSP来作为视图但是仍有部分项目使用了JSP视图Springboot JSP项目运行方式有war、Jar两种方式。 二样例代码 1代码结构 2完整代码备份 如何使用下面的备份文件恢复成原始的项目代码请移步查阅神奇代码恢复工具 //goto Dockerfile #基础镜像 FROM openjdk:8-jre-alpineRUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime echo Asia/Shanghai /etc/timezone#把你的项目war包引入到容器的root目录下 COPY target/*.war /app.warCMD [--server.port8080]#项目的启动方式 #ENTRYPOINT [java,-Xmx400m,-Xms400m,-Xmn150m,-Xss1024k,-jar,/app.war, --spring.profiles.activeprod] ENTRYPOINT [java,-jar,/app.war] //goto pom-jsp-jar.xml ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.fly/groupIdartifactIddocker-demo/artifactIdversion0.0.1/versionpackagingjar/packagingparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.2.4.RELEASE/versionrelativePath //parentpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingmaven.build.timestamp.formatyyyyMMdd-HH/maven.build.timestamp.formatdocker.hubregistry.cn-shanghai.aliyuncs.com/docker.hubjava.version1.8/java.versionskipTeststrue/skipTests/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdexclusionsexclusiongroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-logging/artifactId/exclusion/exclusions/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-log4j2/artifactId/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-context-support/artifactIdscopecompile/scope/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactId/dependencydependencygroupIdcom.google.guava/groupIdartifactIdguava/artifactIdversion20.0/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdoptionaltrue/optional/dependency!-- JSTL for JSP --dependencygroupIdjavax.servlet/groupIdartifactIdjstl/artifactId/dependency!-- For JSP compilation --dependencygroupIdorg.apache.tomcat.embed/groupIdartifactIdtomcat-embed-jasper/artifactIdscopeprovided/scope/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdscopeprovided/scope/dependency/dependenciesbuildfinalName${project.artifactId}-${project.version}/finalNamepluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdversion1.4.2.RELEASE/version/plugin!-- 添加docker-maven插件 --plugingroupIdio.fabric8/groupIdartifactIddocker-maven-plugin/artifactIdversion0.41.0/versionexecutionsexecutionphasepackage/phasegoalsgoalbuild/goalgoalpush/goalgoalremove/goal/goals/execution/executionsconfiguration!-- 连接到带docker环境的linux服务器编译image --!-- dockerHosthttp://192.168.182.10:2375/dockerHost --!-- Docker 推送镜像仓库地址 --pushRegistry${docker.hub}/pushRegistryimagesimage!--推送到私有镜像仓库镜像名需要添加仓库地址 --name${docker.hub}/00fly/${project.artifactId}:${project.version}-UTC-${maven.build.timestamp}/name!--定义镜像构建行为 --builddockerFileDir${project.basedir}/dockerFileDir/build/imageimagename${docker.hub}/00fly/${project.artifactId}:${project.version}/namebuilddockerFileDir${project.basedir}/dockerFileDir/build/image/images/configuration/plugin/pluginsresourcesresourcedirectorysrc/main/java/directoryexcludesexclude**/*.java/exclude/excludes/resourceresourcedirectorysrc/main/resources/directoryincludesinclude**/**/include/includes/resourceresourcedirectorysrc/main/webapp/directoryincludesinclude**/**/include/includestargetPathMETA-INF/resources/targetPath/resource/resources/build /project //goto pom.xml ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.fly/groupIdartifactIddocker-demo/artifactIdversion0.0.1/versionpackagingwar/packagingparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.2.4.RELEASE/versionrelativePath //parentpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingmaven.build.timestamp.formatyyyyMMdd-HH/maven.build.timestamp.formatdocker.hubregistry.cn-shanghai.aliyuncs.com/docker.hubjava.version1.8/java.versionskipTeststrue/skipTests/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdexclusionsexclusiongroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-logging/artifactId/exclusion/exclusions/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-log4j2/artifactId/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-context-support/artifactIdscopecompile/scope/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactId/dependencydependencygroupIdcom.google.guava/groupIdartifactIdguava/artifactIdversion20.0/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdoptionaltrue/optional/dependency!-- JSTL for JSP --dependencygroupIdjavax.servlet/groupIdartifactIdjstl/artifactId/dependency!-- For JSP compilation --dependencygroupIdorg.apache.tomcat.embed/groupIdartifactIdtomcat-embed-jasper/artifactIdscopeprovided/scope/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdscopeprovided/scope/dependency/dependenciesbuildfinalName${project.artifactId}-${project.version}/finalNamepluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin!-- 添加docker-maven插件 --plugingroupIdio.fabric8/groupIdartifactIddocker-maven-plugin/artifactIdversion0.41.0/versionexecutionsexecutionphasepackage/phasegoalsgoalbuild/goalgoalpush/goalgoalremove/goal/goals/execution/executionsconfiguration!-- 连接到带docker环境的linux服务器编译image --!-- dockerHosthttp://192.168.182.10:2375/dockerHost --!-- Docker 推送镜像仓库地址 --pushRegistry${docker.hub}/pushRegistryimagesimage!--推送到私有镜像仓库镜像名需要添加仓库地址 --name${docker.hub}/00fly/${project.artifactId}:${project.version}-UTC-${maven.build.timestamp}/name!--定义镜像构建行为 --builddockerFileDir${project.basedir}/dockerFileDir/build/imageimagename${docker.hub}/00fly/${project.artifactId}:${project.version}/namebuilddockerFileDir${project.basedir}/dockerFileDir/build/image/images/configuration/plugin/pluginsresourcesresourcedirectorysrc/main/java/directoryexcludesexclude**/*.java/exclude/excludes/resourceresourcedirectorysrc/main/resources/directoryincludesinclude**/**/include/includes/resourceresourcedirectorysrc/main/webapp/directoryincludesinclude**/**/include/includestargetPathMETA-INF/resources/targetPath/resource/resources/build /project //goto shell\docker\1-n\docker-compose.yml version: 3 services:demo-dk:image: demo-dk:1.0build:context: .dockerfile: Dockerfilecontainer_name: demo_dkdeploy:resources:limits:cpus: 0.50memory: 300Mreservations:memory: 128Mports:- 8085:8085- 8086:8086- 8087:8087logging:driver: json-fileoptions:max-size: 5mmax-file: 1 //goto shell\docker\1-n\Dockerfile #基础镜像 FROM openjdk:8-jre-alpineRUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN echo Asia/Shanghai /etc/timezone#把你的项目war包引入到容器的root目录下 COPY *.war /app.warRUN echo \ #!/bin/sh\n\ nohup java -jar /app.war --server.port8085 \n\ nohup java -jar /app.war --server.port8086 \/start.shRUN chmod x /start.sh CMD nohup sh -c /start.sh java -jar /app.war --server.port8087 //goto shell\docker\1-n\restart-docker.sh #!/bin/bash docker-compose down docker system prune -f docker-compose build docker-compose up -d //goto shell\docker\1-n\start.sh #!/bin/bash# 命令后加入 保持程序后台持续运行 nohup java -jar /app.war --server.port8085 nohup java -jar /app.war --server.port8086 # 死循环保持docker前台运行 while [[ true ]]; dosleep 1 done//goto shell\docker\1-n\start2.sh #!/bin/bash# 命令后加入 保持程序后台持续运行 nohup java -jar /app.war --server.port8085 java -jar /app.war --server.port8086 //goto shell\docker\scale\docker-compose.yml version: 3.8 services:nginx:image: nginx:alpinecontainer_name: nginxdeploy:resources:limits:cpus: 0.80memory: 50Mreservations:memory: 30Mports:- 80:80restart: on-failurevolumes:- ./nginx/nginx.conf:/etc/nginx/nginx.conf- ./nginx/conf.d:/etc/nginx/conf.dlogging:driver: json-fileoptions:max-size: 5mmax-file: 1 depends_on:- demodemo:hostname: demoimage: registry.cn-shanghai.aliyuncs.com/00fly/docker-demo:0.0.1deploy:resources:limits:cpus: 0.80memory: 200Mreservations:memory: 100Menvironment:- JAVA_OPTS-server -Xms128m -Xmx128m -Djava.security.egdfile:/dev/./urandomrestart: on-failurelogging:driver: json-fileoptions:max-size: 5mmax-file: 1 //goto shell\docker\scale\restart.sh #!/bin/bash docker-compose --compatibility restart //goto shell\docker\scale\scale.sh #!/bin/bash docker-compose --compatibility up -d --scale nginx1 --scale demo3 //goto shell\docker\scale\stop.sh #!/bin/bash docker-compose down //goto shell\docker\single\docker-compose.yml version: 3 services:docker-demo:image: registry.cn-shanghai.aliyuncs.com/00fly/docker-demo:0.0.1container_name: docker-demodeploy:resources:limits:cpus: 0.80memory: 300Mreservations:cpus: 0.05memory: 100Mports:- 80:8080restart: on-failurelogging:driver: json-fileoptions:max-size: 5mmax-file: 1 //goto shell\docker\single\restart.sh #!/bin/bash docker-compose down docker system prune -f docker-compose up -d //goto shell\docker\single\stop.sh #!/bin/bash docker-compose down //goto shell\init.sh #!/bin/bash dos2unix * dos2unix */* dos2unix */*/*chmod x *.sh chmod x */*.sh //goto shell\reload-jar.sh #!/bin/bash # get pidpnamespringboot-cache.jar echo -e jar-name$pname\r\nget_pid(){pidps -ef | grep $pname | grep -v grep | awk {print $2}echo $pid }ps -ef|grep $pnamePID$(get_pid) if [ -z ${PID} ] thenecho -e \r\nJava Application already stop! elseecho -e \r\nkill -9 ${PID} \r\nkill -9 ${PID}echo -e Java Application is stop! firm -rf info.logecho -e \r\nJava Application will startup!\r\n jar_pathfind .. -name $pname#echo jarfile$jar_pathnohup java -jar $jar_path --server.port8181 ./info.log 21 ps -ef|grep $pname //goto shell\reload-war.sh #!/bin/bash # get pid get_pid(){pnamedocker-demo.warpidps -ef | grep $pname | grep -v grep | awk {print $2}echo $pid }ps -ef|grep docker-demo.warPID$(get_pid) if [ -z ${PID} ] thenecho -e \r\nJava Application already stop! elseecho -e \r\nkill -9 ${PID}kill -9 ${PID}echo -e Java Application is stop! firm -rf info.logecho -e \r\nJava Application will startup! nohup java -jar /work/demo/web/docker-demo.war -Xms64m -Xmx64m --server.port8181 ./info.log 21 #sleep 2s #nohup java -jar /work/demo/web/docker-demo.war -Xms64m -Xmx64m --server.port8182 ./info.log 21 ps -ef|grep docker-demo.warecho -e please visit: https://test.00fly.online/user/#tail -f info.log //goto shell\start-service.sh #!/bin/bash java -jar docker-demo.war -Xms64m -Xmx64m --server.port8083 //goto src\main\java\com\fly\common\AnnotationHelper.java package com.fly.common;import java.lang.annotation.Annotation; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; import java.util.Map;import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping;import lombok.extern.slf4j.Slf4j;/*** * 注解处理工具类* * author 00fly* version [版本号, 2020-04-16]* see [相关类/方法]* since [产品/模块版本]*/ Slf4j public class AnnotationHelper {private static ListString cacheList new ArrayList();private AnnotationHelper(){super();}/*** 得到类上面的注解信息* * param scannerClass* param allowInjectClass* return*/private static Annotation getClassAnnotation(Class? scannerClass, Class? extends Annotation allowInjectClass){if (!scannerClass.isAnnotationPresent(allowInjectClass)){return null;}return scannerClass.getAnnotation(allowInjectClass);}/*** 使用Java反射得到注解的信息* * param annotation* param methodName* return Exception*/private static Object getAnnotationInfo(Annotation annotation, String methodName)throws Exception{if (annotation null){return null;}Method declaredMethod annotation.getClass().getDeclaredMethod(methodName, null);return declaredMethod.invoke(annotation, null);}/*** 从上下文获取 Controller注解类的 RequestMapping注解url信息* * param applicationContext* return* throws Exception* see [类、类#方法、类#成员]*/public static ListString getRequestMappingURL(ApplicationContext applicationContext)throws Exception{if (cacheList.isEmpty()){synchronized (AnnotationHelper.class){ListString list new ArrayList();MapString, Object map applicationContext.getBeansWithAnnotation(Controller.class);for (String key : map.keySet()){Class? clazz map.get(key).getClass();Annotation classAnnotation getClassAnnotation(clazz, RequestMapping.class);Object object getAnnotationInfo(classAnnotation, value);if (object ! null){String[] array (String[])object;log.info({} - {}, clazz.getName(), object);for (String it : array){if (!it.contains($)){list.add(it);}}}}cacheList list;}}return cacheList;} } //goto src\main\java\com\fly\common\AuthorizationInterceptor.java package com.fly.common;import java.net.InetAddress;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Component; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;/*** * AuthorizationInterceptor* * author 00fly* version [版本号, 2019年7月21日]* see [相关类/方法]* since [产品/模块版本]*/ Component public class AuthorizationInterceptor extends HandlerInterceptorAdapter {AutowiredApplicationContext applicationContext;Value(${server.port})String port;AutowiredHttpSession session;Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception{if (session.getAttribute(urls) null){session.setAttribute(urls, AnnotationHelper.getRequestMappingURL(applicationContext));session.setAttribute(port, port);session.setAttribute(ip, InetAddress.getLocalHost().getHostAddress());}return true;} } //goto src\main\java\com\fly\common\WebMvcConfig.java package com.fly.common;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;/*** * WebMvcConfig* * author 00fly* version [版本号, 2019年7月21日]* see [相关类/方法]* since [产品/模块版本]*/ Configuration public class WebMvcConfig implements WebMvcConfigurer {Autowiredprivate AuthorizationInterceptor authorizationInterceptor;Overridepublic void addInterceptors(InterceptorRegistry registry){registry.addInterceptor(authorizationInterceptor).addPathPatterns(/user/**);} } //goto src\main\java\com\fly\demo\model\User.java package com.fly.demo.model;import java.io.Serializable;import lombok.Data; import org.hibernate.validator.constraints.Range;import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull;Data public class User implements Serializable {private static final long serialVersionUID -4621975403168327735L;private Long userId;NotBlank(message 用户名不能为空)private String userName;NotNull(message 年龄不能为空)Range(min 10, max 60, message 年龄必须在{min}-{max})private Integer age;private String desc; } //goto src\main\java\com\fly\demo\service\impl\UserServiceImpl.java package com.fly.demo.service.impl;import java.util.List;import javax.annotation.PostConstruct;import org.apache.commons.lang3.RandomUtils; import org.springframework.stereotype.Service;import com.fly.demo.model.User; import com.fly.demo.service.UserService; import com.google.common.collect.Lists;import lombok.extern.slf4j.Slf4j;Slf4j Service public class UserServiceImpl implements UserService {private ListUser users Lists.newArrayList();private Long sequence 1L;/*** 初始化* * see [类、类#方法、类#成员]*/PostConstructpublic void init(){log.info(PostConstruct users);for (int i 0; i 5; i){User user new User();user.setUserId(sequence);user.setUserName(user_ sequence);user.setAge(RandomUtils.nextInt(10, 40));user.setDesc(This is a user sequence);users.add(user);sequence;}}private void insert(User user){log.info(insert user : {}, user);user.setUserId(sequence 1);users.add(user);sequence;}private void update(User user){log.info(update user id {}, user.getUserId());for (User it : users){if (it.getUserId().equals(user.getUserId())){it.setUserName(user.getUserName());it.setAge(user.getAge());it.setDesc(user.getDesc());return;}}}/*** 新增/根据id更新* * param user* see [类、类#方法、类#成员]*/Overridepublic void saveOrUpdate(User user){if (user.getUserId() ! null){update(user);return;}insert(user);}Overridepublic void delete(Long userId){log.info(delete user id {}, userId);for (User user : users){if (user.getUserId().equals(userId)){users.remove(user);return;}}}Overridepublic User get(Long userId){log.info(get user id {}, userId);for (User user : users){if (user.getUserId().equals(userId)){return user;}}return null;}Overridepublic ListUser list(){log.info(list users);return users;} } //goto src\main\java\com\fly\demo\service\UserService.java package com.fly.demo.service;import java.util.List;import com.fly.demo.model.User;public interface UserService {void saveOrUpdate(User user);void delete(Long userId);User get(Long userId);ListUser list();} //goto src\main\java\com\fly\demo\web\IndexController.java package com.fly.demo.web;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping;import com.fly.common.AnnotationHelper;/*** * IndexController* * author 00fly* version [版本号, 2020-04-16]* see [相关类/方法]* since [产品/模块版本]*/ Controller public class IndexController {AutowiredApplicationContext applicationContext;/*** 首页* * param model* return* throws Exception* see [类、类#方法、类#成员]*/GetMapping(/)public String index(Model model)throws Exception{model.addAttribute(urls, AnnotationHelper.getRequestMappingURL(applicationContext));return /index;} } //goto src\main\java\com\fly\demo\web\UserApi.java package com.fly.demo.web;import javax.validation.Valid;import org.apache.commons.lang3.RandomStringUtils; import org.apache.commons.lang3.RandomUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.Errors; import org.springframework.validation.ObjectError; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping;import com.fly.demo.model.User; import com.fly.demo.service.UserService;import lombok.extern.slf4j.Slf4j;Slf4j Controller RequestMapping(/user) public class UserApi {Autowiredprivate UserService userService;/*** 测试添加缓存后续读取从缓存中取* * param userId* return* see [类、类#方法、类#成员]*/GetMapping(get)public User get(Long userId){return userService.get(userId);}/*** 新增/更新数据* * param user* return* see [类、类#方法、类#成员]*/PostMapping(/add)public String add(Valid ModelAttribute(item) User user, Errors errors, Model model){if (errors.hasErrors()){StringBuilder errorMsg new StringBuilder();for (ObjectError error : errors.getAllErrors()){errorMsg.append(error.getDefaultMessage()).append( );}if (errorMsg.length() 0){log.info(errors message{}, errorMsg);}model.addAttribute(items, userService.list());return /user/show;}userService.saveOrUpdate(user);return redirect:/user/list;}/*** 测试删除缓存*/GetMapping(/delete/{id})public String delete(PathVariable Long id){userService.delete(id);return redirect:/user/list;}GetMapping({/, /list})public String list(Model model){User user new User();if (RandomUtils.nextInt(1, 10) 1){user.setUserName(RandomStringUtils.randomNumeric(5));user.setAge(RandomUtils.nextInt(10, 70));user.setDesc(RandomStringUtils.randomNumeric(5));}model.addAttribute(item, user);model.addAttribute(items, userService.list());return /user/show;}/*** 编辑数据* * param id* param model* return* see [类、类#方法、类#成员]*/GetMapping(/update/{id})public String update(PathVariable Long id, Model model){model.addAttribute(item, userService.get(id));model.addAttribute(items, userService.list());return /user/show;} } //goto src\main\java\com\fly\DemoBootApplication.java package com.fly;import java.net.InetAddress;import org.apache.commons.lang3.SystemUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.context.annotation.Bean;import lombok.extern.slf4j.Slf4j;Slf4j SpringBootApplication public class DemoBootApplication {Value(${server.port})Integer port;public static void main(String[] args){SpringApplication.run(DemoBootApplication.class, args);}BeanConditionalOnWebApplicationCommandLineRunner openBrowser(){return args - {if (SystemUtils.IS_OS_WINDOWS port 0){log.info(★★★★★★★★ now open Browser ★★★★★★★★ );String ip InetAddress.getLocalHost().getHostAddress();String url http:// ip : port;Runtime.getRuntime().exec(cmd /c start /min url);}};} } //goto src\main\resources\application.yml server:port: 8080 spring:mvc:view:prefix: /WEB-INF/viewssuffix: .jsp //goto src\main\webapp\WEB-INF\views\index.jsp % page languagejava contentTypetext/html; charsetutf-8 pageEncodingutf-8% % taglib urihttp://java.sun.com/jsp/jstl/core prefixc% % taglib urihttp://java.sun.com/jsp/jstl/functions prefixfn% tabletrth colspan${fn:length(urls)1}Navigate/th/trtrc:forEach varitem items${urls}tda href${pageContext.request.contextPath}${item}/${item}/a/td/c:forEach/tr /table //goto src\main\webapp\WEB-INF\views\user\show.jsp % page contentTypetext/html;charsetUTF-8% % taglib urihttp://java.sun.com/jsp/jstl/core prefixc% % taglib urihttp://java.sun.com/jsp/jstl/functions prefixfn% % taglib urihttp://www.springframework.org/tags prefixspring% % taglib urihttp://www.springframework.org/tags/form prefixform% meta charsetutf-8 html head title00fly功能演示/title style body {margin: 10;font-size: 62.5%;line-height: 1.5; }.blue-button {background: #25A6E1;padding: 3px 20px;color: #fff;font-size: 12px;border-radius: 2px;-moz-border-radius: 2px;-webkit-border-radius: 4px;border: 1px solid #1A87B9 }table {width: 70%; }th {background: SteelBlue;color: white; }td, th {border: 1px solid gray;font-size: 12px;text-align: left;padding: 5px 10px;overflow:hidden; white-space:nowrap; text-overflow:ellipsis;max-width: 200px; } /style /head script typetext/javascriptfunction formReset() {location.href/user/list;} /script bodycentertabletrth colspan${fn:length(urls)1}Navigate/th/trtrc:forEach varitem items${urls}tda href${pageContext.request.contextPath}${item}/${item}/a/td/c:forEach/tr/table form:form methodpost modelAttributeitem action${pageContext.request.contextPath}/user/addtabletrth colspan3Add or Edit Item/thform:hidden pathuserId //trtrtdform:label pathuserNameuserName:/form:label/tdtdform:input pathuserName size30 maxlength30/form:input/tdtdString form:errors pathuserName cssStylecolor:red //td/trtrtdform:label pathageage:/form:label/tdtdform:input pathage size30 maxlength30/form:input/tdtdInteger form:errors pathage cssStylecolor:red //td/trtrtdform:label pathdescdesc:/form:label/tdtdform:input pathdesc size30 maxlength30/form:input/tdtdString form:errors pathdesc cssStylecolor:red //td/trtrtd colspan3 styletext-align: center;input typesubmit classblue-button / input typereset classblue-button onclickformReset() //td/tr/table/form:formh3Data List/h3c:if test${!empty items}tabletrth width5序号/thth width5Edit/thth width5Delete/thth width100userId/thth width150userName/thth width150age/thth width150desc/th/trc:forEach items${items} varit varStatusvstrtd${vs.count}/tdtda hrefc:url value/user/update/${it.userId} /Edit/a/tdtda hrefc:url value/user/delete/${it.userId} /Delete/a/tdtd${it.userId}/tdtd${it.userName}/tdtd${it.age}/tdtd${it.desc}/td/tr/c:forEach/table/c:ifh3应用端口font colorred${port}/font/h3h3Server IPfont colorred${ip}/font/h3/center /body /html 三准备工作 1. pom.xml 引入组件 !-- JSTL 支持按需引入 --dependencygroupIdjavax.servlet/groupIdartifactIdjstl/artifactId/dependency!-- JSP 编译支持必须引入--dependencygroupIdorg.apache.tomcat.embed/groupIdartifactIdtomcat-embed-jasper/artifactIdscopeprovided/scope/dependency2. application.yml 指定jsp配置 application.yml spring:mvc:view:prefix: /WEB-INF/viewssuffix: .jsp四war方式运行 1. 修改pom.xml文件 packagingwar/packaging2. mvn执行打包 mvn clean package执行后会在target目录生成war包拷贝出来后运行 java -jar docker-demo-0.0.1.war浏览器访问 http://127.0.0.1:8080/user/ 界面如下 五jar方式运行 复制 pom.xml重命名为 pom-jsp-jar.xml 1. 修改pom-jsp-jar.xml文件 packagingjar/packaging2. 修改 spring-boot-maven-plugin添加版本号 注意只能使用1.4.2.RELEASE其他版本不行 plugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdversion1.4.2.RELEASE/version/plugin3. 添加资源文件配置Jar运行必须 resourcesresourcedirectorysrc/main/java/directoryexcludesexclude**/*.java/exclude/excludes/resourceresourcedirectorysrc/main/resources/directoryincludesinclude**/**/include/includes/resourceresourcedirectorysrc/main/webapp/directoryincludesinclude**/**/include/includestargetPathMETA-INF/resources/targetPath/resource/resources4. mvn执行打包 mvn clean package -f pom-jsp-jar.xml执行后会在target目录生成 jar包拷贝出来后运行 java -jar docker-demo-0.0.1.jar六war、jar方式运行配置文件区别 有任何问题和建议都可以向我提问讨论,大家一起进步谢谢! -over-
http://www.w-s-a.com/news/894036/

相关文章:

  • 网站建设的意义和作用江苏城市建设档案馆网站
  • 华为云速建站贴心的广州网站建设
  • 网页网站开发公司天津seo推广
  • 网站线框图用什么做共享门店新增礼品卡兑换模式
  • 互联网建站是什么seo服务公司上海
  • 象山县城乡建设局网站做网站客户要求分期
  • 什么是网络营销型网站手机网站 图标
  • 全国新农村建设网站外包和劳务派遣哪个好
  • 网站权限控制什么软件做网站描述
  • 建网络商城网站wordpress关于
  • 专业网站建设分类标准重庆网站开发哪家专业
  • 织梦的网站关键词如何自己搭建微信小程序
  • 怎么做基金公司网站韩都衣舍网站建设ppt
  • 外贸网站模板aspnet网站开发 视频
  • 上海植物租赁做网站南浔网站建设
  • 怎么做学校网站做兼职工作上哪个网站招聘
  • 软件下载网站哪个比较好杭州开发小程序
  • 做网站都用什么技术学做名片的网站
  • 备案网站忘记密码乐装网
  • 电商扶贫网站建设淄博网站建设小程序
  • 网站群建设代理丰城网站建设公司
  • 青岛网站建设服务器wordpress迁移跳转原网站
  • 泰安网站建设哪里有公司如何注册网站
  • 做网站开专票税钱是多少个点上海市有哪些公司
  • 寿县有做网站开发的吗宁波网站建设方式
  • 网站建设和网站推广服务器怎么发布网站
  • 比较好的摄影网站雅安市政建设公司网站
  • 网站与微信区别wordpress 站内信
  • 宁夏网站开发设计说明书源码下载脚本之家
  • 邱县做网站百度搜索排名机制