Spring MVC 学习笔记
使用Servlet做控制器存在的问题:
同一个Servlet中处理多个请求比较麻烦 BankServelt?method=insert BankServelt?method=get
请求参数的获取和类型转换需要手工编码
响应jsp页面路径在Servlet中写死
一、概述
spring mvc是spring框架的一个模块,springmvc与spring无需通过中间整合层进行整合
spring mvc是一个基于MVC设计模式的框架
是目前最主流的MVC框架之一(struts2)
spring 3.0之后,全面的超越了struts2
二、使用
导入jar包
< dependency>
< groupId> org.springframework groupId>
< artifactId> spring-webmvc artifactId>
< version> 4.3.8.RELEASE version>
dependency>
< dependency>
< groupId> org.springframework groupId>
< artifactId> spring-context artifactId>
< version> 4.3.8.RELEASE version>
dependency>
SpringMVC提供了一个DispatcherServlet,把用户的请求转给SpringMVC进行处理
< servlet>
< servlet-name> DispatcherServlet servlet-name>
< servlet-class>
org.springframework.web.servlet.DispatcherServlet
servlet-class>
< init-param>
< param-name> contextConfigLocation param-name>
< param-value> classpath:springmvc.xml param-value>
init-param>
servlet>
< servlet-mapping>
< servlet-name> DispatcherServlet servlet-name>
< url-pattern> *.action url-pattern>
servlet-mapping>
springmvc.xml(三大件)
1)组件扫描
< context: component-scan base-package = " com.neu.controller" > context: component-scan>
2)启用springmvc注解
< mvc: annotation-driven> mvc: annotation-driven>
3)配置视图解析器
< bean class = " org.springframework.web.servlet.view.InternalResourceViewResolver" >
< property name = " prefix" value = " /WEB-INF/jsp/" > property>
< property name = " suffix" value = " .jsp" > property>
bean>
定义控制器 1)添加一个普通的java类,在其上添加@Controller注解,该注解实现了@Component注解的功能,并且可以在添加有@Controller注解的类中,搜索@RequestMapping注解的方法 2)在控制器类中添加处理请求的方法,并且在该方法上添加@RequestMapping注解,该注解负责把用户输入的url映射到当前方法上 3)@RequestMapper a)既可以添加到类上,也可以添加到方法上 b)添加到类定义处,提供初步的请求映射信息,路径相对于web应用程序根目录 c)添加到方法处,提供进一步的细分映射信息,相对于类定义处的url,若类定义处没有标注@RequesMapping,则路径url相对于web应用根目录 d)method:表示能处理的请求方法 @RequestMapping(value="/login",method= {RequestMethod.POST,RequestMethod.GET}) e)value:指定请求的url f)params:指定请求中必须包含某些请求参数或参数值 @RequestMapping(value="/login",method= {RequestMethod.POST,RequestMethod.GET},params= {“username=admin”,“password=123”}) 4)请求参数的绑定:把请求参数的key/value,绑定到控制器方法的形参上,默认情况下,要求请求参数名与形参名相同即可自动绑定 5)@RequestParam:映射请求参数 a)value:请求参数名 b)required:请求参数是否必须提供,默认值为true c)defaultValue:请求参数默认值,请求参数为空的时候,使用默认值 6)方法的返回值为字符串 a)返回逻辑视图名:需要配置视图解析器,添加前缀和后缀 实际视图名=前缀+逻辑视图名+后缀 b)重定向:redirect:url 重定向时候,视图解析器不起作用 c)请求转发:forward:url(请求转发到另一个处理器方法) 7)向响应结果添加数据:在形参中添加Model对象,添加到Model中的数据最终会被添加到request中model.addAttribute(“username”, username);
处理器方法形参 1)可以为pojo:只要请求参数的名与pojo的属性名相同就会自动绑定 2)复杂类型pojo:pojo中的某个属性为另一个实体 请求参数:?group.name=group1 3)数组(数组成员为基本数据类型、或包装类、字符串) 4)pojo的属性为集合:
请求参数:
?list[0].username=tom&list[0].password=123&list[1].username=marry&list[1].password=345
实体类:
class Group {
private List< User> list;
}
处理器方法:
String login ( Group group) {
}
5)HttpServletRequest 6)HttpSession 7)HttpServletResponse
处理器方法的返回值类型: 1)String 2)void 3)ModelAndView
添加spring的编码过滤器(处理post请求编码问题)
< filter>
< filter-name> CharacterEncodingFilter filter-name>
< filter-class>
org.springframework.web.filter.CharacterEncodingFilter
filter-class>
< init-param>
< param-name> encoding param-name>
< param-value> utf-8 param-value>
init-param>
filter>
< filter-mapping>
< filter-name> CharacterEncodingFilter filter-name>
< url-pattern> /* url-pattern>
filter-mapping>
修改tomcat插件中uriEncoding属性(处理get请求编码问题)
< plugin>
< groupId> org.apache.tomcat.maven groupId>
< artifactId> tomcat7-maven-plugin artifactId>
< version> 2.2 version>
< configuration>
< path> / path>
< port> 8089 port>
< uriEncoding> utf-8 uriEncoding>
configuration>
plugin>
日期格式 1)默认:yyyy/MM/dd 2)修改默认日期格式:在实体类的日期属性上添加@DataTimeFormat(pattern=“yyyy-MM-dd”)
@DateTimeFormat ( pattern= "yyyy-MM-dd" )
private Date birthday;
3)常见错误:400:表示数据格式错误
三、文件上传
导入jar包
< dependency>
< groupId> commons-fileupload groupId>
< artifactId> commons-fileupload artifactId>
< version> 1.3.2 version>
dependency>
配置附件解析器
< bean id = " multipartResolver" class = " org.springframework.web.multipart.commons.CommonsMultipartResolver" >
< property name = " maxUploadSize" value = " 5242880" > property>
< property name = " defaultEncoding" value = " utf-8" > property>
bean>
编写控制器
@Controller
public class FileUploadController {
@RequestMapping ( "file" )
public void upload ( MultipartFile file, HttpServletRequest request) throws IllegalStateException, IOException {
String path = request. getServletContext ( ) . getRealPath ( "/upload" ) ;
if ( ! file. isEmpty ( ) ) {
File f = new File ( path, file. getOriginalFilename ( ) ) ;
file. transferTo ( f) ;
}
}
}
编写jsp
< form action = " ${ pageContext.request.contextPath }/file.action" method = " post" enctype = " multipart/form-data" >
文件:< input type = " file" name = " file" > < input type = " submit" value = " 提交" >
form>
多文件上传:
@Controller
public class FileUploadController {
@RequestMapping ( "file" )
public void upload ( @RequestParam ( "files" ) MultipartFile[ ] files, HttpServletRequest request) throws IllegalStateException, IOException {
String path = request. getServletContext ( ) . getRealPath ( "/upload" ) ;
for ( MultipartFile file : files) {
if ( ! file. isEmpty ( ) ) {
File f = new File ( path, file. getOriginalFilename ( ) ) ;
file. transferTo ( f) ;
}
}
}
}
多文件上传:jsp
< form action = " ${ pageContext.request.contextPath }/file.action" method = " post" enctype = " multipart/form-data" >
文件:< input type = " file" name = " files" > < br>
文件:< input type = " file" name = " files" > < br>
文件:< input type = " file" name = " files" > < br>
< input type = " submit" value = " 提交" >
form>
四、返回json对象
在处理器方法上添加@ResponseBody,该注解能够将处理器方法返回的对象经过适当的转换,把数据写入到Response对象的Body数据区
@RequestMapping ( "getByJob" )
@ResponseBody
public List< Emp> getByJob ( String job) {
List< Emp> list = empService. getByJob ( job) ;
return list;
}
导入jar包
< dependency>
< groupId> com.fasterxml.jackson.core groupId>
< artifactId> jackson-databind artifactId>
< version> 2.8.8.1 version>
dependency>
jsp
$ ( function ( ) {
$ ( ":button" ) . click ( function ( ) {
var url = "${ pageContext.request.contextPath }/emp/getByJob.action" ;
var data1 = $ ( "[name=job]" ) . serialize ( ) ;
$. post ( url, data1, function ( data) {
for ( i = 0 ; i < data. length; i++ ) {
var emp = data[ i] ;
var tr = $ ( "") . appendTo ( "table" ) ;
$ ( " ") . text ( emp. empno) . appendTo ( tr) ;
$ ( " ") . text ( emp. ename) . appendTo ( tr) ;
$ ( " ") . text ( emp. job) . appendTo ( tr) ;
$ ( " ") . text ( emp. hiredate) . appendTo ( tr) ;
$ ( " ") . text ( emp. mgr) . appendTo ( tr) ;
$ ( " ") . text ( emp. sal) . appendTo ( tr) ;
$ ( " ") . text ( emp. comm) . appendTo ( tr) ;
$ ( " ") . text ( emp. dept. dname) . appendTo ( tr) ;
}
} ) ;
} ) ;
} ) ;
< / script>
五、拦截器
拦截器类似于Serlet中的过滤器(Filter),用于对处理器进行预处理和后处理
创建拦截器 1)实现HandlerInterceptor接口
public class LoginCheckInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle ( HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
HttpSession session = request. getSession ( ) ;
Object username = session. getAttribute ( "username" ) ;
if ( username == null) {
request. getRequestDispatcher ( "/login.jsp" ) . forward ( request, response) ;
return false ;
}
return true ;
}
@Override
public void postHandle ( HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion ( HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
}
}
配置拦截器
< mvc: interceptors>
< mvc: interceptor>
< mvc: mapping path = " /**" />
< mvc: exclude-mapping path = " /login.action" />
< bean class = " com.neu.controller.LoginCheckInterceptor" > bean>
mvc: interceptor>
mvc: interceptors>
你可能感兴趣的:(其他框架,SpringMVC从入门到精通)
设计模式 笔记10 | 适配器模式 在源码中的应用 | Spring源码的 AOP 注册中心存储了不同的适配器实现 | SpringMVC源码doDisPatch方法里的 HandlerAdapter
「已注销」
设计模式 设计模式 适配器模式 spring
文章目录一、适配器模式知识回顾二、类适配器使用案例之拓展登陆业务2.1模拟登陆的旧系统2.2旧系统拓展【类适配器】2.3旧系统拓展【接口适配器】三、适配器模式在Spring源码中的应用四、SpringMVC中的适配器模式五、总结参考资料一、适配器模式知识回顾适配器定义:将一个类的接口转换成另一种目标接口,使得原本由于接口不兼容而不能一起工作的类能一起工作适配器分类:类结构型模式(耦合读较高)和对象
从入门到精通:Postman 实用指南
a小胡哦
postman lua 测试工具
Postman是一款超棒的API开发工具,能用来测试、调试和管理API,大大提升开发效率。下面就给大家详细讲讲它的安装、使用方法,再分享些实用技巧。一、安装Postman你能在Postman官网(https://www.postman.com)下载对应版本,它支持Windows、macOS和Linux系统。Windows系统安装:下载好安装包后,直接双击运行。安装向导出现,点击“Next”,阅读并
《Stable Diffusion绘画完全指南:从入门到精通的Prompt设计艺术》-配套代码示例
Allen-Steven
SD 创作实践 python相关应用 Stable Diffusion绘画学习指南 深度学习 pytorch 人工智能 stable diffusion Checkpoint prompt
第一章:模型加载与基础生成1.1基础模型加载fromdiffusersimportStableDiffusionPipelineimporttorch#加载SD1.5基础模型(FP32精度)pipe=StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5",torch_dtype=torch.float32).
vue从入门到精通(九):监视属性
陈小于
vue从入门到精通 vue.js javascript 前端
一,监视属性(watch)1.当被监视的属性变化时,回调函数自动调用,进行相关操作2.监视的属性必须存在,才能进行监视!!3.监视的两种写法:(1).newVue时传入watch配置(2).通过vm.$watch监视如下:准备好一个容器-->今天天气很{{info}}切换天气Vue.config.productionTip=false;constvm=newVue({el:'#root',data
DeepSeek 从入门到精通
DS_Watson
ai AI
DeepSeek火了,资料分享给大家通过网盘分享的文件:DeepSeek链接:https://pan.baidu.com/s/1NHpM2E3m6bvLMoEfa-HAgg?pwd=h3if提取码:h3if我用夸克网盘分享了「DeepSeek」链接:https://pan.quark.cn/s/8a4654b23504提取码:ip6S
清华大学DeepSeek手册又双叒叕更新!第Ⅲ册《普通人如何抓住DeepSeek红利》
纪元A梦
资源分享 办公软件 AI工具 DeepSeek DeepSeek手册 普通人如何抓住DS红利
继清华大学DeepSeek手册第Ⅰ册《从入门到精通》和第Ⅱ册《如何赋能职场应用》之后,很多小伙伴都能够熟练的使用DeepSeek处理工作中的问题,也对DeepSeek的应用有了更深的理解;为了让每个人都能够利用DeepSeek处理日常生活、工作、学习等方面的诸多问题,清华大学推出了DeepSeek使用手册第Ⅲ册《普通人如何抓住DeepSeek红利》,让DeepSeek能够在各个方面充分发挥其作用和
Spring Boot 架构入门学习指南
Just_Paranoid
技术流Clip 1024程序员节 后端 springboot web应用 API
SpringBoot架构入门学习指南1.什么是SpringBoot2.快速入门3.核心概念3.1自动配置3.2配置管理3.3Profiles4.数据访问4.1使用SpringDataJPA5.目录结构5.1目录结构5.2目录及文件作用6.拓展开发SpringBoot是Spring框架家族中的一员,由于其简洁和高效广受欢迎。本文将带你从入门到精通,逐步探索SpringBoot的架构及其丰富特性。1.
Spring Boot集成Spring MVC:快速搭建Web应用
软件职业规划
spring spring spring boot mvc
在SpringBoot项目中集成SpringMVC是一个非常常见的需求。SpringBoot已经内置了对SpringMVC的支持,因此集成过程相对简单。1.创建SpringBoot项目你可以通过以下方式创建一个SpringBoot项目:使用SpringInitializr(start.spring.io)在线生成项目。使用IDE(如IntelliJIDEA或Eclipse)的SpringBoot插
《从入门到精通:蓝桥杯编程大赛知识点全攻略》(十四)-地牢大师、全球变暖、大臣的旅费
程序猿零零漆
蓝桥杯 蓝桥杯 java 算法
前言在本文中,我们将探讨三道有趣的算法题,分别是《地牢大师》、《全球变暖》和《大臣的旅费》。每道题目都有独特的挑战,考验我们在图论、动态规划以及数据结构的运用。通过这些问题,我们不仅能提升算法能力,还能进一步理解如何将理论知识应用到实际问题中,解决复杂的编程任务。地牢大师你现在被困在一个三维地牢中,需要找到最快脱离的出路!地牢由若干个单位立方体组成,其中部分不含岩石障碍可以直接通过,部分包含岩石障
SpringBoot Spring MVC
深度视觉机器
SpringBoot spring boot
一、初始SpringMVC1.1什么是SpringMVC1、SpringMVC是Spring框架的一部分 SpringMVC是一种轻量级的、基于MVC的Web层应用框架。SpringMVC通过把模型-视图-控制器分离,将Web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。
SpringBoot中实现WebMvcConfigurer,配置跨域无效
TNTnine
Spring spring boot java 后端
跨域配置如下:@ConfigurationpublicclassCorsConfigimplementsWebMvcConfigurer{/***跨域配置*-Access-Control-Allow-Origin的介绍:*-https://blog.csdn.net/MicroAnswer/article/details/102913571*-SpringMVC路径匹配规则:*-1、https:/
太厉害了,清华大学出品的这个ai学习教程火出圈。
2501_90658343
人工智能 AIGC 学习 AI写作 AI编程
最近疯传的《DeepSeek:从入门到精通》教程ppt,我已经搞到了。它是由清华大学博士后团队撰写。总共104页,详细的介绍了DeepSeek是什么,有什么用,以及如何正确高效使用DeepSeek的核心干货。完整版ppt资料已经帮大家整理好了,免费领取。领取链接:https://pan.quark.cn/s/c589f1a1982b
Spring MVC 的核心以及执行流程
小马不敲代码
JAVA相关框架 spring mvc java
SpringMVC的核心SpringMVC是Spring框架中的一个重要模块,它采用了经典的MVC(Model-View-Controller)设计模式。MVC是一种软件架构的思想,它将软件按照模型(Model)、视图(View)和控制器(Controller)三个核心组件来划分,以提高应用程序的可维护性、可测试性和可扩展性。•模型(Model):表示应用程序中的数据和业务逻辑。在SpringMV
SpringMVC的工作原理
冰糖心书房
2025 Java面试系列 java
SpringMVC工作原理详解SpringMVC是Spring框架中用于构建Web应用程序的模块。它基于MVC(Model-View-Controller)设计模式,提供了一种清晰且可维护的方式来处理Web请求和生成响应。以下是SpringMVC工作原理的详细说明,包括各个组件的作用以及它们如何协同工作:1.用户发起请求(BrowserRequest):用户在浏览器输入URL,发起一个HTTP请求
spring boot的约定大于配置
猿二哈
spring boot java spring
约定大于配置是一种系统设计思想(软件设计的范式),它能够帮助我们免去许多在写程序时需要配置且只需要配置一次的操作(减少对配置项的维护,)springboot就是基于这种思想下的产物,(类似spring框架下的脚手架,能够快速开发基于spring下的应用程序)(免去了在开发应用程序时只需配置一次的操作,比如维护web.xml文件,dispatchservelet(springMVC中的文件)文件,应
PLC自动化工程师成长学习过程
crown6465
c语言
PLC自动化工程师成长学习路径:从入门到精通的五个阶段PLC(可编程逻辑控制器)是工业自动化领域的核心设备,PLC工程师需要具备跨学科的知识体系和实践能力。以下是PLC工程师从入门到精通的成长路径,分为五个阶段。第一阶段:基础知识储备(0-6个月)目标:建立自动化领域的基础理论框架。学科基础电工电子基础:学习电路分析、模拟/数字电路、电气元件(继电器、接触器、传感器)原理。自动化原理:理解控制理论
什么是MVC?什么是SpringMVC?什么是三层架构?
m0_74824802
面试 学习路线 阿里巴巴 mvc 架构
文章目录应用分层什么是MVC?什么是SpringMVC?三层架构三层架构和MVC的关系应用分层在讲解什么是MVC之前,先来理解一下什么是应用分层。应用分层是一种软件开发设计思想,将应用程序划分成N个层次,每个层次都分别负责自己的职责,多个层次之间来协同提供完整的功能,根据项目的复杂度,将项目分成三层或四层等。举个例子:比如,一个公司创始初期,创始人要身兼数职,既要做财务,又要做人事,又要做行政,但
清华发布:DeepSeek学习教程ppt 104页完整版免费分享
2501_90649720
人工智能 学习
最近国产DeepSeek火出圈,其出色的性能和巨大的潜力引得各路资本巨头蜂蛹而入,纷纷与其合作。红遍世界。在DeepSeek火遍世界时,清华大学的博士后团队默默出品了一份名为《DeepSeek:从入门到精通》的ai教学课程。课程一经发布,就引得各个自媒体ai博主的疯传,一度冲上热搜。我专门去看了一下这个教程,确实够硬,够专业,够全面!完整版教程资源我已经帮大家整理好放下面了,大家自行领取。资源链接
Vue 前端开发中的路由知识:从入门到精通
chenNorth。
vue 前端 vue.js 前端 javascript
文章目录引言1.VueRouter简介1.1安装VueRouter1.2配置VueRouter1.3在Vue实例中使用VueRouter2.路由的基本用法2.1路由映射2.2路由视图2.3路由链接3.动态路由3.1动态路径参数3.2访问动态参数3.3响应路由参数的变化4.嵌套路由4.1定义嵌套路由4.2渲染嵌套路由5.路由守卫5.1全局守卫5.2路由独享守卫5.3组件内守卫6.路由懒加载6.1使用
java word在线编辑_[原创]Java开发在线打开编辑保存Word文件(支持多浏览器)
嘻嘻哈哈哦哦吧
java word在线编辑
Java调用PageOffice实现在线编辑保存Word文件(以jsp调用为例,支持SSM、SSH、SpringMVC等流行框架)1.下载PageOffice开发包:http://www.zhuozhengsoft.com/dowm/下载PageOfficeforJAVA2.以Myeclipse为例,新建一个WebProject,比如:wordonline3.解压PageOffice开发包,拷贝“
19.4 集成Spring MVC-《SSM深入解析与项目实战》
谙忆
SSM项目实战
19.4集成SpringMVC-《SSM深入解析与项目实战》项目中所有的源码都可以在此链接的仓库中找到:https://github.com/chenhaoxiang/uifuture-ssm文章目录19.4集成SpringMVC27:Freemarker依赖application-mvc.xml文件web.xml文件内容web.xml做了什么index.ftl配置方法跳转页面19.4集成Spri
Tomcat安装与配置详解:从入门到精通
一休哥助手
java tomcat java
一、Tomcat简介1.1什么是Tomcat?Tomcat是由Apache软件基金会开发和维护的一款轻量级Java应用服务器,能够运行JavaServlet和JSP应用程序。Tomcat作为JavaWeb服务器与传统的Web服务器(如ApacheHTTPServer)配合使用,以便提供动态的Web服务。1.2Tomcat的主要特性轻量级:Tomcat的体积较小,启动速度快,资源消耗低,非常适合开发
应用分层、三层架构和MVC架构
小猪同学hy
java 架构 mvc
前言在前面中,我们已经学习了SpringMVC的一些基础操作,那么后面就用一些简单的案例来巩固一下。在开始学习做案例之前,我们先来了解一下在软件开发中常见的设计模式和架构。应用分层含义应用分层是一种软件开发设计思想,将应用程序分成N个层次,每个层次各司其职,多个层次之间协同提供完整的功能。根据项目的复杂度,可以把项目分为三层、四层或者更多层。我们前面学习的MVC设计模式,就是应用分层的一种具体体现
AUTOSAR从入门到精通-【应用篇】基于AUTOSAR的AT自动变速器控制系统故障诊断
格图素书
人工智能
目录前言自动变速器发展现状自动变速器故障诊断发展现状(1)国外研究现状(2)国内研究现状2AT自动变速器系统组成2.1AT自动变速器的机械结构2.1.1液力变矩器2.1.2行星齿轮2.1.3换挡执行机构2.2AT自动变速器控制系统组成2.2.1液压控制系统2.2.2电子控制系统2.3AT自动变速器工作原理3基于AUTOSAR的AT自动变速器运行状态监测3.1AT自动变速器的状态参数3.1.1AT自
清华大学:DeepSeek 如何赋能职场应用(35 页 PDF)
伟贤AI之路
AI应用 pdf
原来已经分享过清华大学的DeepSeek:从入门到精通(100页PDF)现在又来第二弹:《DeepSeek如何赋能职场应用?从提示语技巧到多场景应用》PDF里介绍了DeepSeek这一人工智能工具及其在职场中的应用,从基础模型到深度思考模型,再到联网搜索模型,展示了其在不同情境下的强大功能。通过提示语技巧和多场景应用,DeepSeek能够实现人机高效协同,提高工作效率和创作质量。文章不仅讲述了De
清华大学第三弹:《普通人如何抓住DeepSeek红利》
人工智能
家人们,清华又双叒放大招啦!这次带来了全新的DeepSeek教程,这已经是第三篇咯前两篇《DeepSeek从入门到精通》和《DeepSeek如何赋能职场应用》真的超绝,我跟着学了好多超实用的DeepSeek使用技巧。完整版高清65页PDF我放到网盘里了,大家需要可以自行下载资料链接:https://tool.nineya.com/s/1ij30k101还有更多丰富资源大家可以一起学习哟本文由mdn
Java学习教程,从入门到精通,Java 正则表达式知识点及案例代码(120)
知识分享小能手
编程语言如门 Java 大数据 java 学习 正则表达式 jdbc 开发语言 数据库 java后端开发
Java正则表达式知识点及案例代码一、正则表达式简介正则表达式(RegularExpression,简称regex)是一种用于描述字符串模式的强大工具。它可以用来进行字符串的匹配、查找、替换等操作。Java提供了java.util.regex包来支持正则表达式。二、Java正则表达式语法1.基本语法元字符描述.匹配除换行符以外的任意字符\d匹配数字,等价于[0-9]\D匹配非数字,等价于[^0-9
DeepSeek从入门到精通-清华【附下载链接】
The丶Star
人工智能 AI应用 AI模型 语言模型 人工智能 机器学习 AI编程 AI写作
通过网盘分享的文件:DeepSeek从入门到精通-清华.pdf链接:https://pan.baidu.com/s/1O4Saxx3USwjjLQxww3Dmww?pwd=rk3c提取码:rk3c–来自百度网盘超级会员v9的分享
2025清华DeepSeek从入门到精通
京漂的人
ai
DeepSeek火爆全球,网上各类教程层出不穷,质量却参差不齐。近日,清华大学新闻与传播学院-新媒体研究中心-元宇宙文化实验室团队出了一版DeepSeek详细使用手册,长达104页。该教程堪称国产AI工具DeepSeek深度使用的标杆指南,既适合新手快速掌握基础操作,也为进阶用户提供系统性方法论https://download.csdn.net/download/gyc800/90360007
2024年最新Android Jetpack Compose开发指南及实战教程_jetpack compose pdf
2401_86391835
android jetpack pdf android
这里免费分享一份阿里P7架构师和谷歌技术团队共同整理的JetpackCompose指南及实战教程,来帮助读者规划出从入门到精通的最佳学习路径。在对知识点细致的讲解之外,书中还穿插了大量示例代码和最佳实践,对于Compose的初/中级读者极具学习和参考价值。AndroidJetpackCompose开发应用指南第⼀章初识JetpackJetPack是什么JetPack和AndroidXAndroid
怎么样才能成为专业的程序员?
cocos2d-x小菜
编程 PHP
如何要想成为一名专业的程序员?仅仅会写代码是不够的。从团队合作去解决问题到版本控制,你还得具备其他关键技能的工具包。当我们询问相关的专业开发人员,那些必备的关键技能都是什么的时候,下面是我们了解到的情况。
关于如何学习代码,各种声音很多,然后很多人就被误导为成为专业开发人员懂得一门编程语言就够了?!呵呵,就像其他工作一样,光会一个技能那是远远不够的。如果你想要成为
java web开发 高并发处理
BreakingBad
java Web 并发 开发 处理 高
java处理高并发高负载类网站中数据库的设计方法(java教程,java处理大量数据,java高负载数据) 一:高并发高负载类网站关注点之数据库 没错,首先是数据库,这是大多数应用所面临的首个SPOF。尤其是Web2.0的应用,数据库的响应是首先要解决的。 一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降。常用的优化措施是M-S(
mysql批量更新
ekian
mysql
mysql更新优化:
一版的更新的话都是采用update set的方式,但是如果需要批量更新的话,只能for循环的执行更新。或者采用executeBatch的方式,执行更新。无论哪种方式,性能都不见得多好。
三千多条的更新,需要3分多钟。
查询了批量更新的优化,有说replace into的方式,即:
replace into tableName(id,status) values
微软BI(3)
18289753290
微软BI SSIS
1)
Q:该列违反了完整性约束错误;已获得 OLE DB 记录。源:“Microsoft SQL Server Native Client 11.0” Hresult: 0x80004005 说明:“不能将值 NULL 插入列 'FZCHID',表 'JRB_EnterpriseCredit.dbo.QYFZCH';列不允许有 Null 值。INSERT 失败。”。
A:一般这类问题的存在是
Java中的List
g21121
java
List是一个有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。
与 set 不同,列表通常允许重复
读书笔记
永夜-极光
读书笔记
1. K是一家加工厂,需要采购原材料,有A,B,C,D 4家供应商,其中A给出的价格最低,性价比最高,那么假如你是这家企业的采购经理,你会如何决策?
传统决策: A:100%订单 B,C,D:0%
&nbs
centos 安装 Codeblocks
随便小屋
codeblocks
1.安装gcc,需要c和c++两部分,默认安装下,CentOS不安装编译器的,在终端输入以下命令即可yum install gccyum install gcc-c++
2.安装gtk2-devel,因为默认已经安装了正式产品需要的支持库,但是没有安装开发所需要的文档.yum install gtk2*
3. 安装wxGTK
yum search w
23种设计模式的形象比喻
aijuans
设计模式
1、ABSTRACT FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:
开发管理 CheckLists
aoyouzi
开发管理 CheckLists
开发管理 CheckLists(23) -使项目组度过完整的生命周期
开发管理 CheckLists(22) -组织项目资源
开发管理 CheckLists(21) -控制项目的范围开发管理 CheckLists(20) -项目利益相关者责任开发管理 CheckLists(19) -选择合适的团队成员开发管理 CheckLists(18) -敏捷开发 Scrum Master 工作开发管理 C
js实现切换
百合不是茶
JavaScript 栏目切换
js主要功能之一就是实现页面的特效,窗体的切换可以减少页面的大小,被门户网站大量应用思路:
1,先将要显示的设置为display:bisible 否则设为none
2,设置栏目的id ,js获取栏目的id,如果id为Null就设置为显示
3,判断js获取的id名字;再设置是否显示
代码实现:
html代码:
<di
周鸿祎在360新员工入职培训上的讲话
bijian1013
感悟 项目管理 人生 职场
这篇文章也是最近偶尔看到的,考虑到原博客发布者可能将其删除等原因,也更方便个人查找,特将原文拷贝再发布的。“学东西是为自己的,不要整天以混的姿态来跟公司博弈,就算是混,我觉得你要是能在混的时间里,收获一些别的有利于人生发展的东西,也是不错的,看你怎么把握了”,看了之后,对这句话记忆犹新。 &
前端Web开发的页面效果
Bill_chen
html Web Microsoft
1.IE6下png图片的透明显示:
<img src="图片地址" border="0" style="Filter.Alpha(Opacity)=数值(100),style=数值(3)"/>
或在<head></head>间加一段JS代码让透明png图片正常显示。
2.<li>标
【JVM五】老年代垃圾回收:并发标记清理GC(CMS GC)
bit1129
垃圾回收
CMS概述
并发标记清理垃圾回收(Concurrent Mark and Sweep GC)算法的主要目标是在GC过程中,减少暂停用户线程的次数以及在不得不暂停用户线程的请夸功能,尽可能短的暂停用户线程的时间。这对于交互式应用,比如web应用来说,是非常重要的。
CMS垃圾回收针对新生代和老年代采用不同的策略。相比同吞吐量垃圾回收,它要复杂的多。吞吐量垃圾回收在执
Struts2技术总结
白糖_
struts2
必备jar文件
早在struts2.0.*的时候,struts2的必备jar包需要如下几个:
commons-logging-*.jar Apache旗下commons项目的log日志包
freemarker-*.jar  
Jquery easyui layout应用注意事项
bozch
jquery 浏览器 easyui layout
在jquery easyui中提供了easyui-layout布局,他的布局比较局限,类似java中GUI的border布局。下面对其使用注意事项作简要介绍:
如果在现有的工程中前台界面均应用了jquery easyui,那么在布局的时候最好应用jquery eaysui的layout布局,否则在表单页面(编辑、查看、添加等等)在不同的浏览器会出
java-拷贝特殊链表:有一个特殊的链表,其中每个节点不但有指向下一个节点的指针pNext,还有一个指向链表中任意节点的指针pRand,如何拷贝这个特殊链表?
bylijinnan
java
public class CopySpecialLinkedList {
/**
* 题目:有一个特殊的链表,其中每个节点不但有指向下一个节点的指针pNext,还有一个指向链表中任意节点的指针pRand,如何拷贝这个特殊链表?
拷贝pNext指针非常容易,所以题目的难点是如何拷贝pRand指针。
假设原来链表为A1 -> A2 ->... -> An,新拷贝
color
Chen.H
JavaScript html css
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD>&nbs
[信息与战争]移动通讯与网络
comsci
网络
两个坚持:手机的电池必须可以取下来
光纤不能够入户,只能够到楼宇
建议大家找这本书看看:<&
oracle flashback query(闪回查询)
daizj
oracle flashback query flashback table
在Oracle 10g中,Flash back家族分为以下成员:
Flashback Database
Flashback Drop
Flashback Table
Flashback Query(分Flashback Query,Flashback Version Query,Flashback Transaction Query)
下面介绍一下Flashback Drop 和Flas
zeus持久层DAO单元测试
deng520159
单元测试
zeus代码测试正紧张进行中,但由于工作比较忙,但速度比较慢.现在已经完成读写分离单元测试了,现在把几种情况单元测试的例子发出来,希望有人能进出意见,让它走下去.
本文是zeus的dao单元测试:
1.单元测试直接上代码
package com.dengliang.zeus.webdemo.test;
import org.junit.Test;
import o
C语言学习三printf函数和scanf函数学习
dcj3sjt126com
c printf scanf language
printf函数
/*
2013年3月10日20:42:32
地点:北京潘家园
功能:
目的:
测试%x %X %#x %#X的用法
*/
# include <stdio.h>
int main(void)
{
printf("哈哈!\n"); // \n表示换行
int i = 10;
printf
那你为什么小时候不好好读书?
dcj3sjt126com
life
dady, 我今天捡到了十块钱, 不过我还给那个人了
good girl! 那个人有没有和你讲thank you啊
没有啦....他拉我的耳朵我才把钱还给他的, 他哪里会和我讲thank you
爸爸, 如果地上有一张5块一张10块你拿哪一张呢....
当然是拿十块的咯...
爸爸你很笨的, 你不会两张都拿
爸爸为什么上个月那个人来跟你讨钱, 你告诉他没
iptables开放端口
Fanyucai
linux iptables 端口
1,找到配置文件
vi /etc/sysconfig/iptables
2,添加端口开放,增加一行,开放18081端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 18081 -j ACCEPT
3,保存
ESC
:wq!
4,重启服务
service iptables
Ehcache(05)——缓存的查询
234390216
排序 ehcache 统计 query
缓存的查询
目录
1. 使Cache可查询
1.1 基于Xml配置
1.2 基于代码的配置
2 指定可搜索的属性
2.1 可查询属性类型
2.2 &
通过hashset找到数组中重复的元素
jackyrong
hashset
如何在hashset中快速找到重复的元素呢?方法很多,下面是其中一个办法:
int[] array = {1,1,2,3,4,5,6,7,8,8};
Set<Integer> set = new HashSet<Integer>();
for(int i = 0
使用ajax和window.history.pushState无刷新改变页面内容和地址栏URL
lanrikey
history
后退时关闭当前页面
<script type="text/javascript">
jQuery(document).ready(function ($) {
if (window.history && window.history.pushState) {
应用程序的通信成本
netkiller.github.com
虚拟机 应用服务器 陈景峰 netkiller neo
应用程序的通信成本
什么是通信
一个程序中两个以上功能相互传递信号或数据叫做通信。
什么是成本
这是是指时间成本与空间成本。 时间就是传递数据所花费的时间。空间是指传递过程耗费容量大小。
都有哪些通信方式
全局变量
线程间通信
共享内存
共享文件
管道
Socket
硬件(串口,USB) 等等
全局变量
全局变量是成本最低通信方法,通过设置
一维数组与二维数组的声明与定义
恋洁e生
二维数组 一维数组 定义 声明 初始化
/** * */ package test20111005; /** * @author FlyingFire * @date:2011-11-18 上午04:33:36 * @author :代码整理 * @introduce :一维数组与二维数组的初始化 *summary: */ public c
Spring Mybatis独立事务配置
toknowme
mybatis
在项目中有很多地方会使用到独立事务,下面以获取主键为例
(1)修改配置文件spring-mybatis.xml <!-- 开启事务支持 --> <tx:annotation-driven transaction-manager="transactionManager" /> &n
更新Anadroid SDK Tooks之后,Eclipse提示No update were found
xp9802
eclipse
使用Android SDK Manager 更新了Anadroid SDK Tooks 之后,
打开eclipse提示 This Android SDK requires Android Developer Toolkit version 23.0.0 or above, 点击Check for Updates
检测一会后提示 No update were found