winde3, tudo bom?
Provavelmente você está começando em Java correto?
Então entender o que é uma JSR é essencial. Basicamente uma JSR é uma padronização de algo que estava uma bagunça, ou que tinha muitas opções para fazer a mesma coisa.
Por exemplo, existiam várias maneiras de criar um servidor web e trabalhar com Http, dado um momento um grupo chamado JCP (de quem cuida das JSR’s) decidiu oferecer uma opção padrão para quem quisesse programar para web.
Essa padronização é uma JSR (Java Specification Request). Na verdade cada JSR apenas define um conjunto de regras para criar um ferramenta de algum tipo, web, banco de dados, objetos robusto, troca de mensagem assícrona, injeção de dependências.
Cada JSR então serve para alguma coisa, por exemplo das que você citou as mais famosas são as 314 e 317, JSF 2.0 e JPA 2.0 respectivamente. JSF serve para ajudar na criação de aplicações web e a JPA serve para trabalhar com banco de dados de maneira orientada a objetos (ORM).
Falando em padronização, isso se encaixa perfeitamente na segunda parte da sua pergunta, “o que são patterns?”.
Patterns também são uma forma de padronização, mas não de uma ferramenta, mas sim de uma idéia de solução, por exemplo, uma padrão famoso é o Factory, que encapsula toda a regra de criação de um objeto complexo de ser criado. Existem patterns para diversas coisas.
O mais famoso guia de referência é um livro chamado “Design Patterns: Elements of Reusable Object-Oriented Software” http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/[telefone removido]
Embora não recomenda a leitura desse livro de cabo a rabo, vale a pena dar uma passada em uma livraria, para entender o que é um pattern.